如何合并兩個不相等的元組列表: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條經(jīng)驗 獲得超9個贊
轉(zhuǎn)x成字典易于搜索,然后...
xx = dict(x)
[(k, xx[k], a) for k, a in y]
# => [('Animal', 1, 'Dog'), ('Animal', 1, 'Cat'), ('Bird', 2, 'Parrot')]
編輯:現(xiàn)在這是一個完全不同的問題。
[(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動物字典轉(zhuǎn)換為數(shù)字列表來再次加快速度。
添加回答
舉報
0/150
提交
取消