Я пытаюсь написать код, чтобы проверить, является ли число суммой любых двух чисел в списке/словаре, и если номер найден, он перестает работать. Тем не менее, я сталкиваюсь с некоторыми ошибками. Может быть, моя логика не так, но вот мой код:Python найти сумму двух чисел из списка
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"
Так что мои ошибки:
- аа [первый] не запускается 1
- мой второй массив хранит все меньше, когда размер должен всегда 8. Таким образом, давая мне ошибку «IndexError: индексный список из диапазона»
- он не останавливается, когда он находит сумму,
Любая помощь будет отличной
Кстати, я не знаю, есть ли другой способ, чтобы удалить номер из вне список кроме того del bb [первый]. Если есть другой способ, дайте мне знать –
Возможный дубликат [Неожиданное поведение списка в Python] (http://stackoverflow.com/questions/21537078/unexpected-list-behavior-in-python) –
Я не полностью конечно, что вы пытаетесь сделать, и у вас могут быть другие проблемы, но в достаточной степени ваш вопрос сводится к неправильному копированию списков, которые, как я считаю, сейчас дублируются. –