我正在阅读一个格式如下的文件:
0.012281001 00:1c:c4:c2:1f:fe 1 30
0.012285001 00:1c:c4:c2:1f:fe 3 40
0.012288001 00:1c:c4:c2:1f:fe 2 50
0.012292001 00:1c:c4:c2:1f:fe 4 60
0.012295001 24:1c:c4:c2:2f:ce 5 70
我打算将第 2 列实体作为键,将第 3 列和第 4 列作为单独的值。对于我遇到的每一行,对于该特定键,它们各自的值必须相加(值 1 和值 2 应该为该键分别聚合)。在上面提到的例子中,我需要得到这样的输出:
'00:1c:c4:c2:1f:fe': 10 : 180, '24:1c:c4:c2:2f:ce': 5 : 70
我为简单的 1 key 1 value 编写的程序如下:
#!/usr/bin/python
import collections
result = collections.defaultdict(int)
clienthash = dict()
with open("luawrite", "r") as f:
for line in f:
hashes = line.split()
ckey = hashes[1]
val1 = float(hashes[2])
result[ckey] += val1
print result
如何将其扩展为 2 个值,以及如何将它们打印为上述输出。我没有任何想法。请帮忙!顺便说一句,我正在使用 python2.6