我正在寻找一种方法来比较从左到右的列表元素。
这是我的名单:
mylist = [[15], [14, 15], [19, 20], [13], [3], [65, 19], [19, 20, 31]]
我需要将第一个元素与所有其他元素进行比较,并检查是否有任何值匹配,对第二个和第三个元素执行相同的操作,以此类推,直到它到达列表的末尾。如果有匹配的,我需要打印出来。我需要打印出匹配的值和匹配的索引。
例如。
index 0 matched with index 1 for value 15.
index 2 matched with index 5 for value 19
index 2 matched with index 6 for value 19
index 2 matched with index 6 for value 20
index 5 matched with index 6 for value 19.
我该怎么做呢?
您可以使用
itertools.combinations
,它将您从嵌套循环中保存下来:输出
天真的解决方案是循环遍历每一对,这是很慢的。但是,您可以按照以下思路执行操作:
这就是我的意思:
您可以忽略只有1个元素的值列表(因为这意味着我们没有一对)。那些有2+元素的形成了各种成对。例如,对于
19
,我们有[2, 5, 6]
的含义:就像你一样。这种方法在嵌套列表中的项目总数中是线性的。如果在嵌套列表长度上有一个合理的上限,那么这是主列表大小的O(n)。
现在输出:
相关问题 更多 >
编程相关推荐