我有一個 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
我不知道我是否可以更好地閱讀檔案或之后必須以某種方式修復它,因此將不勝感激。
我嘗試過的:
使用好東西制作一個新串列(不知道為什么這不會格式化為代碼,抱歉!)
Fruit = [] for i in range(len(goodies)): f = list(goodies[i].values())fruit.append(f)
導致:
[['apple', '1', '2'], ['banana', '3', '4'], ['kiwi', '5','6']]
采取上述并嘗試一個元組:
Fruit01 = {tuple(sub[:1]): tuple(sub[1:]) for sub infruit}
結果(為什么那里有那些有趣的逗號?):
{('apple',):('1','2'), ('banana',):('3','4'), ('kiwi',):('5','6')}
免責宣告:這是我第一次遇到 python 和這里的第一個問題,讓我知道我是否做錯了:)
uj5u.com熱心網友回復:
使用一些字典創建:
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']})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334661.html
