【发布时间】:2017-11-05 18:38:29
【问题描述】:
我一直在尝试转换这个 test.csv 文件:
a,b,4
a,c,2
b,a,4
b,c,1
b,d,5
c,a,2
c,b,1
c,d,8
c,e,10
d,b,5
d,c,8
d,e,2
d,z,6
e,c,10
e,d,2
e,z,3
z,d,6
z,e,3
进入这种格式。到目前为止,当我尝试转换它时,重复的键会被覆盖而不是作为第二个值添加。有人可以告诉我如何获得这种格式吗?
G1 = {
'a': [('b', 4), ('c', 2)],
'b': [('a', 4), ('c', 1), ('d', 5)],
'c': [('a', 2), ('b', 1), ('d', 8), ('e', 10)],
'd': [('b', 5), ('c', 8), ('e', 2), ('z', 6)],
'e': [('c', 10), ('d', 2), ('z', 3)],
'z': [('d', 6), ('e', 3)],
}
这是将文件转换为字典的代码,但会替换重复键的新值。我想知道如何将值添加为元组,对于重复的键,将元组添加为第二个值。
reader = csv.reader(open('test.csv'))
arcos = {}
for row in reader:
key = row[0]
arcos[key] = row[1:]
结果:
{
'a': ['c', 2.0],
'b': ['d', 5.0],
'c': ['e', 10.0],
'd': ['z', 6.0],
'e': ['z', 3.0],
'z': ['e', 3.0]
}
我希望我的要求是可能的。
【问题讨论】:
-
也许你没有使用
append作为列表类型。请出示您的代码。
标签: python csv dictionary key tuples