我有两个或更多的列表.有点像这样:
listX = [('A', 1, 10), ('B', 2, 20), ('C', 3, 30), ('D', 4, 30)]
listY = [('a', 5, 50), ('b', 4, 40), ('c', 3, 30), ('d', 1, 20),
('A', 6, 60), ('D', 7, 70])
Run Code Online (Sandbox Code Playgroud)
我想获得移动这样的重复元素的结果:我的结果是从listX + listY获取所有列表,但是在重复的情况下,例如('A', 1, 10), ('D', 4, 30)listX 的元素被呈现或者在listY中退出.结果就这样吧
result = [('A', 7, 70), ('B', 2, 20), ('C', 3, 30), ('D', 11, 100),
('a', 5, 50), ('b', 4, 40), ('c', 3, 30), ('d', 1, 20)]
Run Code Online (Sandbox Code Playgroud)
(A, 7, 70)通过添加('A', 1, 10)和('A', '6', '60')一起获得
任何人都可以帮我解决这个问题.谢谢.
如果你使用字典,这很容易.
combined = {}
for item in listX + listY:
key = item[0]
if key in combined:
combined[key][0] += item[1]
combined[key][1] += item[2]
else:
combined[key] = [item[1], item[2]]
result = [(key, value[0], value[1]) for key, value in combined.items()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1641 次 |
| 最近记录: |