在字典列表中修改字典的键和值(python 3)



我有一个csv文件(不可编辑),看起来像这样:

fruit,price,amount
apple,1,2
banana,3,4
kiwi,5,6

,我已经读到字典的列表:

goodies = []
with open(blabla) as file:
reader = csv.DictReader(file)
for fruit in file:
goodies.append(fruit)

它看起来像这样:

goodies = [{'fruit' : 'apple', 'price' : '1', 'amount':'2'}, {'fruit' : 'banana', 'price' : '3', 'amount':'4'}, {'fruit' : 'kiwi', 'price' : '5', 'amount':'6'}]

我真正需要的:

fruit = [{'apple': [1, 2]}, {'banana': [3, 4]}, {'kiwi': [5, 6]}]

目标是能够将值与另一个值列表进行比较,并获得它所指的水果,有点像:

check = [5, 6]
# compare with all fruit
Output: kiwi

我不知道我是否可以更好地阅读文件,或者以后必须以某种方式修复它,所以任何帮助都将是感激的。

我已经试过了:

  1. 使用goodies创建新列表(不知道为什么不能格式化为代码,抱歉!)

    fruit = []For I in range(len(goodies)):F = list(goodies[i].values())fruit.append (f)

导致:

[['apple', '1', '2'], ['banana', '3', '4'], ['kiwi', '5','6']]
  1. 取上述并尝试一个元组:

    fruit01 = {tuple(sub[:1]): tuple(sub[1:]) for sub in fruit}

导致(为什么那里有那些有趣的逗号?):

{('apple',):('1','2'), ('banana',):('3','4'), ('kiwi',):('5','6')}

免责声明:这是我第一次接触python,也是第一个问题,如果我做错了,请告诉我:)

使用一些字典创建:

goodies = []
with open(blabla) as file:
reader = csv.DictReader(file)
for fruit in file:
goodies.append({fruit['fruit']: [fruit[x] for x in fruit if x != 'fruit']})

相关内容

  • 没有找到相关文章

最新更新