gpt4 book ai didi

python - 将文件解析为数组字典

转载 作者:行者123 更新时间:2023-11-30 23:05:00 25 4
gpt4 key购买 nike

我有一个 csv 文件,其中包含如下所示的设备数据行:

#file.csv
devA,x1,y1
devB,x1,y1
devA,x2,y2
devC,x1,y1
devC,x2,y2
devA,x3,y3

我想制作一个字典,用于制作数据点数组,并使用键的设备名称:

{
'devA':[
[x1,y1],[x2,y2],[x3,y3]
],
'devB':[
[x1,y1]
],
'devC':[
[x1,y1],[x2,y2]
]
}

我尝试过以下方法:

#!/usr/bin/python
#dict.py
import csv,datetime

with open('file.dat', 'rb') as csvfile:
dataReader=csv.reader(csvfile)
book={row[0]:[row[1],row[2]] for row in dataReader}
print book

但这输出

$ ./dict.py 
{'devC': ['x6', 'y6'], 'devB': ['x2', 'y2'], 'devA': ['x7', 'y7']}

我想我发现问题是我的 book= 行正在替换每个键的内容而不是附加。我怎样才能以“Python”方式获得所需的结果?

最佳答案

您可以使用dict.setdefault方法来创建您想要的字典:

my_dict={}
with open('file.dat', 'rb') as csvfile:
dataReader=csv.reader(csvfile)
for name,item1,item2 in dataReader:
my_dict.setdefault(name,[]).append([item1,item2])

如果您使用的是 python 3.X,您可以在循环中使用解包分配:

for name,*items in dataReader:
my_dict.setdefault(name,[]).append(items)

关于python - 将文件解析为数组字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com