首页 > 解决方案 > 从 2 个元组列表中查找公共值,并将一个元组中的值添加到另一个

问题描述

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

我的 2 个清单是:

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])]

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

标签: pythonpython-3.xlisttuples

解决方案


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

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

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])]

推荐阅读