我有以下列出的.csv文件列表:
[['1002', '27', 'K', '1100004224', '2688.40'],['1002', '50', 'S', '1100004224', 2688.40']]
我们的想法是遍历列表列表,比较索引3('1100004224'),如果它们相等,则将索引4添加到彼此并附加到新列表中。
上面的结果(索引1和2被忽视)
[['1002', '1100004224', '5376.8']]
编辑:
如果元素不相等,请采用以下列表:
[['1002', '27', 'K', '1100004224', '2688.40'],['1002', '50', 'S', '1100004224', 2688.40'],['1002', '50, 'S', '1100004225', '1000']]
结果应该是:
[['1002', '1100004224', '5376.8'],['1002','1100004225','1000']]
我怎么能实现这一目标?正在调查zip,尝试了很多循环,但我被阻止了。
答案 0 :(得分:1)
您希望总结l[4]
处l[3]
处的密钥相等的值。
最简单的方法是使用defaultdict
示例代码:
from collections import defaultdict
d = defaultdict(float)
for nested in csv_list:
d[nested[3]] += nested[4]
new_list = []
for x in d.items():
new_list.append(list(x))
或
new_list = [list(x) for x in d.items()]