python - Python比较两个对象列表并追加到一个列表
问题描述
我正在尝试比较两个对象列表,以查看两个列表中的人名是否匹配。
list1 = ('Name', 'Kilometers Driven')
list1 example = ('John Doe', 500),('Jane Doe', 200)
list2 = ('Id','Name','Kilometers Walked','Total Events')
list2 example = (2,'Joe Doe',20,2),(3,'Frank Kelly',32,4)
如果此人同时出现在两个列表中,我想将公里数驱动并将其添加到该人的第二个列表中。
谢谢您的帮助
解决方案
就个人而言,我认为 dicts 更适合您的解决方案,因为您可以通过它们的键(例如 dict['km_driven'])访问它们,这比列表中的整数索引更容易混淆。
此代码使用列表工作:
# list1 = ('Name', 'Kilometers Driven')
list1 = [('Joe Doe', 500),('Jane Doe', 200)]
# list2 = ('Id','Name','Kilometers Walked','Total Events', optional='Kilometers Driven')
list2 = [(2,'Joe Doe',20,2),(3,'Frank Kelly',32,4)]
# Iterate through items of list1
for item1 in list1:
# Iterate through items of list2
for i in range(len(list2)):
# Match 'Name' field in list1 to 'Name' field in list2
if item1[0] == list2[i][1]:
# Add 'Kilometers Driven' to that list2 item
list2[i] = list2[i] + (item1[1], )
print(list2[0])
输出:
(2, 'Joe Doe', 20, 2, 500)
推荐阅读
- html - 在 Angular 11 中动态生成/生成现有组件
- java - JLabel 未显示在我的 JButton 网格中
- julia - Julia 中的二阶 ODE 给出错误的结果
- azure - 验证 Azure Blob 存储连接是否安全
- postgresql - 如何使 postgres 在具有所有相等外键值的大表上的 EXISTS 查询中使用此索引而不是顺序扫描?
- c++ - 堆损坏时触发错误 c0000374 和断点
- kubernetes - Istio:在每个节点上运行入口网关
- sql - SQL Server 使用以前的值更新列
- sql - 从日期时间中提取时间作为单独的列
- android - 如何正确清理 RecyclerView 适配器中的 ViewBindings?