【发布时间】:2013-11-17 15:37:20
【问题描述】:
我正在使用 Python 2.7 并尝试对列表列表进行重复数据删除并合并重复项的值。
现在我有:
original_list = [['a', 1], ['b', 1], ['a', 1], ['b', 1], ['b', 2], ['c', 2], ['b', 3]]
我想匹配每个嵌套列表的第一个元素,然后添加第二个元素的值。我想以这个结尾(最终列表的顺序无关紧要):
ideal_output = [['a', 2], ['b', 7], ['c', 2]]
到目前为止,我有一些代码可以根据每个嵌套列表的第一个元素找到重复值:
for item in original_list:
matches = -1
for x in original_list:
if (item[0] == x[0]):
matches += 1
if matches >= 1:
if item[0] not in duplicates_list:
duplicates_list.append(item[0])
从这里我需要搜索 original_list 中的所有 duplicates_list 项目并将值相加,但我不确定最好的方法是什么。
【问题讨论】:
-
请注意,到目前为止,大多数答案都没有保持键的顺序,这很重要吗?这样可以吗:
[['b', 7],['a', 2],['c', 2]]? -
嗨,不,顺序无关紧要。对不起,我应该提到这一点。我将编辑问题。
-
@beroe 感谢您指出这个问题。之前搜索的时候没看到。它类似,但处理不同的匹配逻辑,不需要任何值的总和。
标签: python list python-2.7