簡體   English   中英

不返回 python 中的所有項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM