比较列表列表中的元素

时间:2018-04-11 08:09:55

标签: python list loops zip

我有以下列出的.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,尝试了很多循环,但我被阻止了。

1 个答案:

答案 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()]