python - 从 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 Amount
和Total (words are in between)
将从 l1 匹配,并且对应于 l1 中存在的键的值,9
在6
这种情况下分别添加到 l2 或新列表中。
预期输出:
l2 = [('Total Amount', ['593.52'],[9]), ('Total (words are in between)', ['593.52'],[6])]
我很乐意提供进一步的澄清,我无法想到会发生这种情况,如果这看起来太混乱了,我很抱歉,我寻找了类似的问题,但似乎没有什么合适的谢谢!
解决方案
为了便于阅读,我会创建一个临时字典,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])]
推荐阅读
- azure-devops - 如何将 powerapps 与 azure devops 集成
- javascript - 如何在完成后重置计时器组件
- javascript - useMemo 与 useEffect + useState
- lisp - Lisp中的线性搜索,数组错误
- python - 使用视图从模型类中获取所有数据到模板上
- css - 如何使用 Flex CSS 将文本垂直居中用于条形图
- node.js - 使用 node 和 mssql 从数据库中检索值
- python - 部署到应用引擎标准环境时如何修复“ImportError:无法导入名称库”?
- excel - 我想根据放置在前一个单元格中的值隐藏或显示行
- python - py_script 从 mysql bd 写入 xlsx 文件