【发布时间】:2016-03-03 12:18:13
【问题描述】:
我正在尝试编写一些代码来检查一个数字是否是列表/字典中任意两个数字的总和,如果找到一个数字,它就会停止运行。但是,我遇到了一些错误。也许我的逻辑是错误的,但这是我的代码:
a = [1,2,3,4,5,6,7,8,9]
randomNumber = 8
print len(a)
length_of_a = len(a)
for first in range(0,length_of_a -1):
aa = a
bb = a
del bb[first]
length_of_b = len(bb)
print bb, length_of_b
for second in range(0, length_of_b-1):
print aa[first], bb[second]
x = aa[first] + bb[second]
print x
if x == randomNumber:
print "Sum Found!"
break
else:
print "No Sum"
所以我的错误:
- aa[first] 不是从 1 开始
- 当大小应始终为 8 时,我的第二个数组不断变小。因此,出现错误“IndexError: list index out of range”
- 当它找到一个总和时它不会停止
任何帮助都会很棒
【问题讨论】:
-
顺便说一句,我不知道除了del bb[first]之外是否还有其他方法可以从列表中删除数字。如果有其他方法,请告诉我
-
我不完全确定您要做什么,并且您可能还有其他问题,但是您的大部分问题都归结为不正确的列表复制,我觉得这是重复的现在.
-
不要破坏你的帖子。
-
@honkon:另一种方式是
bb.pop(first)。
标签: python if-statement for-loop sum