我有两个列表:
list1 = [['A', 14, 'I', 10, 20], ['B', 15, 'S', 30, 40], ['C', 16, 'F', 50, 60]]
list2 = [['A', 14, 'Y', 0, 200], ['B', 15, 'M', 0, 400], ['C', 17, 'G', 0, 600]]
(这只是一个只有3个列表的示例,我有更多的列表,但它们的格式和应用规则完全相同)
这就是我想要的结果:
finalList = [['A', 14, 'Y', 10, 200], ['B', 15, 'M', 30, 400], ['C', 16, 'F', 50, 60],['C', 17, 'G', 0, 600]]
这是我计算finalList的规则:
当list1[listindex][1] == list2[listindex][1]
(例如:当14==14)时,在list1 -> list2[2]
和list2[4]
(例如:“Y”和200)中替换,如果不是这样的话,只需将list2中不匹配的列表按原样添加到list1(如在我所需的输出中),并保留list1中不匹配的列表(例如:['C', 16, 'F', 50, 60]
)。
如何在python3函数中实现这一点?我想要一个简单而直接的函数。非常感谢您抽出时间!你知道吗
下面是一种将列表转换为dict的方法,它利用了
list2
中的重叠项只会覆盖它们的list1
对应项的事实:如果列表的顺序很重要,您可以只在末尾排序,或者首先使用OrderedDict创建合并。你知道吗
要同时处理这两个列表,可以使用
zip()
Docs Here例如:
将返回:
因此,使用zip可以同时处理两个列表。你知道吗
可以在函数中使用
if
语句应用所有规则。你知道吗相关问题 更多 >
编程相关推荐