Python 从2个元组列表中查找公共值,并将一个元组中的值添加到另一个元组中

Python 从2个元组列表中查找公共值,并将一个元组中的值添加到另一个元组中,python,python-3.x,list,tuples,Python,Python 3.x,List,Tuples,我有两个以元组为元素的列表。元组的一个元素将与其他列表中的元组匹配,并将相应的配置值从一个元组添加到另一个元组 我的两份清单是: l1 = [('Receipt total', 10),('Total Amount (AED)', 10),('Grand total', 10),('Net Amount', 9), ('Total Amount', 9),('Total (words are in between)', 6)] l2 = [('Total Amount', ['593.52'

我有两个以元组为元素的列表。元组的一个元素将与其他列表中的元组匹配,并将相应的配置值从一个元组添加到另一个元组

我的两份清单是:

l1 = [('Receipt total', 10),('Total Amount (AED)', 10),('Grand total', 10),('Net Amount', 9),
 ('Total Amount', 9),('Total (words are in between)', 6)]

l2 = [('Total Amount', ['593.52']), ('Total (words are in between)', ['593.52'])]
l2中的键
Total Amount
Total(单词介于两者之间)
将从l1中匹配,在这种情况下,分别对应于l1
9
6
中键的值将添加到l2或新列表中

预期产出:

l2 = [('Total Amount', ['593.52'],[9]), ('Total (words are in between)', ['593.52'],[6])]
我很乐意提供进一步的澄清,我无法想象这会发生,如果这看起来太混乱,我很抱歉,我寻找类似的问题,但没有什么是合适的
谢谢大家!

为了可读性,我会临时创建一个
l1
字典,以便更容易地查找键

解压缩
l2
中的元组,并将键与
l1
-字典中的键进行比较。如果匹配并将所有内容包装到列表中,则创建一个新元组

l1_map = {k: v for k, v in l1}
l2_updated = [(key, num, [l1_map[key]]) for key, num in l2 if key in l1_map]
结果:

[('Total Amount', ['593.52'], [9]),
 ('Total (words are in between)', ['593.52'], [6])]

为了便于阅读,我会临时创建一个
l1
字典,以便于查找键

解压缩
l2
中的元组,并将键与
l1
-字典中的键进行比较。如果匹配并将所有内容包装到列表中,则创建一个新元组

l1_map = {k: v for k, v in l1}
l2_updated = [(key, num, [l1_map[key]]) for key, num in l2 if key in l1_map]
结果:

[('Total Amount', ['593.52'], [9]),
 ('Total (words are in between)', ['593.52'], [6])]

首先从l1创建dict,然后更改l2:

D1=dict(l1)
l2=[t + ([D1[t[0]]],) for t in l2]
输出:

[('Total Amount', ['593.52'], [9]), ('Total (words are in between)', ['593.52'], [6])]

首先从l1创建dict,然后更改l2:

D1=dict(l1)
l2=[t + ([D1[t[0]]],) for t in l2]
输出:

[('Total Amount', ['593.52'], [9]), ('Total (words are in between)', ['593.52'], [6])]

我确实认为这个答案更容易阅读。我认为这个答案更容易理解。向上投票