Python For循环将数组中的一个元素与所有剩余元素进行比较

Python For循环将数组中的一个元素与所有剩余元素进行比较,python,arrays,for-loop,Python,Arrays,For Loop,我在Python中有一个数组[0,1,2,3,4],包含5个元素。我想用以下方式比较元素 (0,1),(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4),(4,4) (0,1),(1,2),(2,3),(3,4)... 我正在做的事情如下 for i in range(len(array)): for j in range(i+1,len(array)): 但这是以如下方式进行比较 (0,1),(0,2),(0,3),(0,4

我在Python中有一个数组
[0,1,2,3,4]
,包含5个元素。我想用以下方式比较元素

(0,1),(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4),(4,4)
(0,1),(1,2),(2,3),(3,4)... 
我正在做的事情如下

for i in range(len(array)):
   for j in range(i+1,len(array)):
但这是以如下方式进行比较

(0,1),(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4),(4,4)
(0,1),(1,2),(2,3),(3,4)... 

我哪里做错了?

此代码生成所需的结果:

array = [0,1,2,3,4]
for i in range(len(array)):
    for j in range(i+1,len(array)):
        print(array[i], array[j])
print(array[-1], array[-1])
此代码是您可能获得错误结果的一种方式:

for i in range(len(array)):
    for j in range(i+1,len(array)):
        print(array[i], array[j])
        break

使用itertools是另一种选择:

>>> [x for x in itertools.combinations(xrange(5), 2)]
[(0, 1), (0, 2), (0, 3), (0, 4), (1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]

你想要结果,还是自己写?@TigerhawkT3如果我想以上述方式比较元素,我需要逻辑。在这些循环之后,通过一行
打印(数组[I],数组[j])
,我得到了所需的输出(除了
(4,4)
,它实际上不是组合序列的一部分)。嵌套的
for
循环看起来是正确的,因此如果它们没有提供您期望的元素对,那么您的代码肯定有其他问题。尝试创建一个说明此问题的示例。为什么在预期输出的末尾有
(4,4)
?为什么会有
中断
?一切皆有可能,但你的猜测基于什么?@TigerhawkT3:这是一个简单的改变,产生了报告的结果。这只是一个猜测,但这是我唯一能想到的不让事情变得更复杂的方法。你能解释为什么OP的代码对他们不起作用吗?@TigerhawkT3,不,因为他的代码不完整(for循环看起来不错),还将每个元素与他自己进行比较(我指的是(4,4))这是一件愚蠢的事情,因为你知道这永远是真的,或者他们永远都在那里。