[英]How to compare sublist of list with sublist of other list that are in same list of lists
我有一个列表列表,每个列表都有子列表,例如如下所示:
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'] 以及列表的 rest 的第一个子列表进行比较。 第二个子列表也是如此。 我想检查他们是否有相同的项目,顺序无关紧要。 所以 ['AB','CD'] 和 ['CD','AB'] 是一样的。 但是我还需要找到哪些子列表包含 ['EF','GH'] 并在所有相同的子列表在一起时进行一些计算。 总而言之,我想用每个列表的第一个子列表的 rest 检查一个列表的第一个子列表,然后对每个子列表(第 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:列表索引超出范围
我不知道我的方法是否正确。 我试图搜索和理解,但找不到相关的东西。
所有子列表的长度相同。
当 i 在列表的最后一个 position 上时,您正在尝试访问列表范围之外的索引。 You do not need to go to the last position, it' enougth go to penultimate position and compare it with the last, like this:
for i in range(0,len(mylist)-1):
for j in range(i,len(mylist[i])):
if mylist[i][j]==mylist[i+1][j]:
print('Found')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.