我根本无法很好地解释这个概念,但我试图使用嵌套循环来循环列表,我不知道如何避免它们使用相同的元素。
list = [1, 2, 2, 4]
for i in list:
for j in list:
print(i, j) # But only if they are not the same element
所以输出应该是:
1 2
1 2
1 4
2 1
2 2
2 4
2 1
2 2
2 4
4 1
4 2
4 2
编辑,因为解决方案不适用于所有场景:
if i != j
解决方案只有在列表中的所有元素都不同的情况下才有效,我显然选择了一个糟糕的例子,但我指的是相同的元素,而不是相同的数字;我已经更改了的示例
您可以比较两次迭代的索引:
lst = [1, 2, 2, 4]
for i, a in enumerate(lst):
for j, b in enumerate(lst):
if i != j:
print(a, b)
您也可以考虑将itertools.permutations
用于您的目的:
lst = [1, 2, 2, 4]
from itertools import permutations
for i, j in permutations(lst, 2):
print(i, j)
两者都将输出:
1 2
1 2
1 4
2 1
2 2
2 4
2 1
2 2
2 4
4 1
4 2
4 2
简单地说:
if i != j:
print(i, j)