jab*_*jab 7 python intersection list set
假设我有以下两个元组列表
myList = [(1, 7), (3, 3), (5, 9)]
otherList = [(2, 4), (3, 5), (5, 2), (7, 8)]
returns => [(1, 7), (2, 4), (3, 8), (5, 11), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
我想设计,通过检查所述元组的第一个元素上的任何交叉点融合这两个列表,如果有交叉点的合并操作中,添加有问题的每个元组(合并两个)的第二元件.在操作之后,我想根据第一个元素进行排序.
我也发布了这个,因为我认为它是一个非常常见的问题,有一个明显的解决方案,但我觉得这个问题可能有非常pythonic的解决方案;)
Sve*_*ach 14
使用字典作为结果:
result = {}
for k, v in my_list + other_list:
result[k] = result.get(k, 0) + v
Run Code Online (Sandbox Code Playgroud)
如果你想要一个元组列表,你可以通过它result.items().结果列表将按任意顺序排列,但您可以根据需要对其进行排序.
(请注意,我重命名了您的列表以符合Python的样式约定.)