[英]dict not returning all items in python
長話短說。 我正在嘗試將我的字典傳遞給一個新的 function。目前返回值是在調用時打印一行數據。
import csv
def csvRead():
with open('data.csv', 'r', newline='') as f:
rcsv = csv.DictReader(f, delimiter=',')
mydict = {}
for line in rcsv:
for k, v in line.items():
mydict[k] = float(v)*2
print(mydict.items())
return mydict.items()
print('current: ', csvRead())
我不完全確定為什么會這樣。
output 是
dict_items([('Velocity', 2.2)])
dict_items([('Speed', 111.0)])
dict_items([('Acceleration', 44.4)])
dict_items([('Velocity', 6.6)])
dict_items([('Speed', 8.8)])
dict_items([('Acceleration', 13.2)])
Current: dict_items([('Velocity', 6.6), ('Speed', 8.8), ('Acceleration', 13.2)]}
這里的目標是避免 pandas。
CSV 格式如下
Velocity,Speed,Acceleration
1.1,55.5,22.2
3.3,4.4,5.5
8.8,9.9,5.5
在你的循環中,你正在覆蓋你的字典值。 我現在以某種方式實現它,其中您的字典使用空列表作為值進行初始化,並將讀取的數據附加到這些列表中:
mydict = {key: [] for key in rcsv.fieldnames}
for line in rcsv:
for k, v in line.items():
mydict[k].append(float(v)*2) # <-- you were overwriting the value in each loop
print(mydict.items())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.