合并两个长度不等的元组列表

如何合并两个不相等的元组列表:


x = [('Animal', 1), ('Bird', 2)]

y = [('Animal', 'Dog'), ('Animal', 'Cat'), ('Bird', 'Parrot')]

..要得到..


[('Animal', 1, 'Dog'), ('Animal', 1, 'Cat'), ('Bird', 2, 'Parrot')]

..使用列表理解?


守着星空守着你
浏览 187回答 1
1回答

PIPIONE

转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动物字典转换为数字列表来再次加快速度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python