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

2024-09-21 05:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的两份清单是:

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 AmountTotal (words are in between)将与l1匹配,并且在这种情况下,分别与l1 96中存在的键对应的值将被添加到l2或新列表中

预期产出:

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

我很乐意提供进一步的澄清,我无法想象这会发生,如果这看起来太混乱,我很抱歉,我寻找类似的问题,但没有什么是合适的 谢谢大家!


Tags: in元素l1列表betweenamountaretotal
2条回答

为了便于阅读,我会创建一个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])]

相关问题 更多 >

    热门问题