为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2021-06-08 17:05:26
如何合并两个不相等的元组列表: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动物字典转换为数字列表来再次加快速度。


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信