Удалить значение из списка с помощью переменной - PullRequest
0 голосов
/ 21 января 2012

Используя следующий код

askNumber1 = int(str(raw_input('What range of numbers do you want? Name the minimum number here.')))
askNumber2 = int(str(raw_input('Name the max number you want here.')))
number3 = askNumber2 + 1
number_list = range(askNumber1, number3)    

number4 = str(int(random.randint(askNumber1, askNumber2)))
number_list.remove(number4)
print number_list
print 'Is this your number: ' + number4 + '?'

выдает ошибку:

ValueError: list.remove (x): x отсутствует в списке

Это какой-либо способ удалить целое число из number_list, используя переменную, определенную как случайное число между двумя другими переменными? Или есть более простой способ сделать это?

Ответы [ 3 ]

5 голосов
/ 21 января 2012

number4 является строкой, в то время как ваш список состоит из целых чисел, поэтому, даже если ваш список [0,1,2,3], выполнение number_list.remove("2") приведет к ошибке, поскольку 2!="2"

1 голос
/ 21 января 2012

Ваш номер4 string.Вам нужно передать целочисленное значение в number_list.remove(number4).Здесь индекс должен быть integer.

number4 = str(int(random.randint(1, 4)))
type(number4)

Выход = <type 'str'>

String = '1'
Integer = 1
String == Integer

Выход = False

0 голосов
/ 22 января 2012

Там есть более простой способ:

number4 = number_list.pop(random.randint(askNumber1, askNumber2))

list.pop удаляет , а возвращает элемент из заданного списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...