【发布时间】:2018-07-22 08:46:24
【问题描述】:
我有 2 个元组列表
a = [(123, 0, 1), (245, 0, 1)]
b = [(123, 1, 0), (678, 1, 0)]
我想合并这两个列表,这样我的输出是:
merged_list = [(123, 1, 1), (245, 0, 1), (678, 1,0)]
我找到了这段代码
def inner_join(a, b):
L = a + b
L.sort(key=itemgetter(0)) # sort by the first column
for _, group in groupby(L, itemgetter(0)):
row_a, row_b = next(group), next(group, None)
if row_b is not None: # join
yield row_a + row_b[1:]
当我执行这个时,它会返回第一个元素是公共的元组
result = list(inner_join(a,b))
result - [(123,1,1)]
我该如何解决这个问题,以便我能够获得所需的解决方案
[(123, 1, 1), (245, 0, 1), (678, 1,0)]
【问题讨论】:
-
你试过了吗?
-
对此没有标准工具。到目前为止你写了什么?
-
合并第一个元组的规则是什么?我们可以从示例中猜测,但您应该明确说明它们。请阅读How to create a Minimal, Complete, and Verifiable example和How do I ask a good question?
-
@DanilaGanchar 我已经编辑了这个问题,我无法从哪里找到这个解决方案
标签: python python-2.7 merge tuples