比较列表清单

时间:2017-04-28 04:46:47

标签: python list

我想比较两个list of list of lists并替换第一个列表中第二个列表中不同的项目。我想要的是,由于List1[0][2][0:3]List2[0][2][0:3]相同,但最后的元素不同,请将List1[0][2][-1]替换为List2[0][2][-1]。我已经使用了列表列表和许多关于SO的例子,例如this处理那个,但我不知道如何对列表列表进行比较,两个列表并不总是统一的真实的数据集。

的List1

[[['192', '177', '4', '749'], ['192', '177', '5', '749'], ['192', '177', '6', '999999']], [['192', '178', '1', '999999'], ['192', '178', '2', '999999'], ['192', '178', '3', '999999'], ['192', '178', '4', '999999'], ['192', '178', '5', '1511'], ['192', '178', '6', '999999']]]

列表2

[[['192', '177', '4', '749'], ['192', '177', '5', '749'], ['192', '177', '6', '222222']], [['192', '178', '1', '222222'], ['192', '178', '2', '222222'], ['192', '178', '3', '222222'], ['192', '178', '4', '222222'], ['192', '178', '5', '1511'], ['192', '178', '6', '999999']]]

1 个答案:

答案 0 :(得分:1)

因为您指定要将第一个列表中的值替换为第二个列表中不同的值,我将假设第二个列表及其嵌套列表的大小只能等于或大于第一个列表及其嵌套列表。

通过这个假设,我们可以简单地将list1中的每个嵌套列表设置为list2中各自的切片嵌套列表,而无需比较任何值。

list1 = [[['192', '177', '4', '749'], ['192', '177', '5', '749'], ['192', '177', '6', '999999']], [['192', '178', '1', '999999'], ['192', '178', '2', '999999'], ['192', '178', '3', '999999'], ['192', '178', '4', '999999'], ['192', '178', '5', '1511'], ['192', '178', '6', '999999']]]

list2 = [[['192', '177', '4', '749'], ['192', '177', '5', '749'], ['192', '177', '6', '222222']], [['192', '178', '1', '222222'], ['192', '178', '2', '222222'], ['192', '178', '3', '222222'], ['192', '178', '4', '222222'], ['192', '178', '5', '1511'], ['192', '178', '6', '999999']]]

list = []

for i in range(len(list2)):
    for j in range(len(list2[i])):
        list.append(list2[i][j][:len(list1[i][j])])

我会看看我是否能找到一个好的列表理解。