我有一个整数列表,我正在通过
我觉得我已经接近成功了,但是当我使用
注意,
for
循环来发现其中两个元素的和是否等于另一个变量 t
。所以如果 t
等于 10
,并且我有一个整数列表:l = [1,2,3,4,5,8,9]
,那么函数应该打印出所有不同的数字组合 (1,9)
,(2,8)
。我觉得我已经接近成功了,但是当我使用
.pop()
函数时,列表中会发生奇怪的事情。下面的代码被用来展示需要计算的所有数字组合,但是列表中每隔一个元素就会被跳过。l = [1,2,5,8,13,15,26,38]
c = 10
for i in l:
first = i
l.pop(0)
for x in l:
second = x
print(first,second)
这是输出结果:
1 2
1 5
1 8
1 13
1 15
1 26
1 38
5 5
5 8
5 13
5 15
5 26
5 38
13 8
13 13
13 15
13 26
13 38
26 13
26 15
26 26
26 38
注意,
2
、8
、15
和38
被跳过了。
我使用l.pop()
,这样第二个for
循环就不会使用原始值,下一次迭代就可以继续迭代列表中的下一个元素。
.pop(0)
相当低效,因为它强制列表移动所有剩余的列表元素以填补空缺。 - PM 2Ring