如何合并两个不相等的元组列表:x = [('Animal', 1), ('Bird', 2)]y = [('Animal', 'Dog'), ('Animal', 'Cat'), ('Bird', 'Parrot')]..要得到..[('Animal', 1, 'Dog'), ('Animal', 1, 'Cat'), ('Bird', 2, 'Parrot')]..使用列表理解?
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
转x成字典易于搜索,然后...
xx = dict(x)
[(k, xx[k], a) for k, a in y]
# => [('Animal', 1, 'Dog'), ('Animal', 1, 'Cat'), ('Bird', 2, 'Parrot')]
编辑:现在这是一个完全不同的问题。
[(k, n, a) for k, a in y for kk, n in x if kk == k]
# => [('Animal', 1, 'Dog'), ('Animal', 2, 'Dog'), ('Animal', 1, 'Cat'),
# ('Animal', 2, 'Cat'), ('Bird', 2, 'Parrot')]
您可以通过将x动物字典转换为数字列表来再次加快速度。
添加回答
举报
0/150
提交
取消