如何比较列表的子列表与相同列表中的其他列表的子列表

问题描述 投票:0回答:1

我有一个列表列表,每个列表都有子列表例如以下内容:

mylist = [[['AB','CD'],['GH','EF'],['IJ','KL'],['']],[['CD','AB'],['EF','GH'],['KL','IJ'],['']],[['EF','GH'],['CD','AB'],['IJ','KL'],['']],...]

列表数为1500,每个列表具有16个子列表(以上仅是示例)。对于所有列表,我要做的是将一个列表的子列表与另一个列表的子列表进行比较。更准确地说,我想比较['AB','CD']与['CD','AB']和['EF','GH']以及其余列表的第一个子列表。第二个子列表也一样。我要检查它们是否具有相同的物品,顺序无关紧要。因此,['AB','CD']与['CD','AB']相同。但是然后,我还需要找到哪些子列表包含['EF','GH']并在所有相同的子列表都在一起时进行一些计算。总而言之,我想检查一个列表的第一个子列表以及每个列表的其余第一个子列表,然后对每个子列表(第2,第3,第4,..,第15)执行相同的操作。我想做这样的事情

for i in range(0,len(mylist)):
        for j in range(i,len(mylist)):
            if mylist[i][j]==mylist[i + 1][j]:

但是我这样做似乎不起作用。它给了我:

IndexError:列表索引超出范围

我不知道我的方法是否正确。我试图进行搜索和理解,但是找不到相关的内容。

所有子列表的长度相同。

python list comparison sublist
1个回答
0
投票

实施时,i的范围应为:从0到len(mylist)-1


0
投票

当我位于列表的最后位置时,您正在尝试将Acessa索引超出列表范围。您无需转到最后一个位置,它会倒数第二个位置,并将其与最后一个位置进行比较,如下所示:

for i in (range(len(mylist))):
    for i in range(0,len(mylist)):
        for j in range(i,len(mylist)-1):
            if mylist[i][j]==mylist[i +1][j]:
© www.soinside.com 2019 - 2024. All rights reserved.