Как я могу удалить целые числа из списка (целых чисел и строк), взяв какое значение удалить из пользовательского ввода? - PullRequest
0 голосов
/ 24 апреля 2018

Я делаю программу на языке Python для вставки и удаления элементов в списке. У меня есть список, содержащий целые числа и строки. Я хочу удалить целое число.

Поэтому я принимаю данные от пользователя как

list = [1, 2, 3, "hi", 5]
x = input("enter the value to be deleted")
# input is given as 2 
list.remove(x)

Но это дает мне ValueError

Я типизировал ввод для int, и он работал для целых чисел, но не для строки.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Работает также с 'hi' в качестве ввода.

list = [1, 2, 3, "hi", 5]


by_index = input('Do you want to delete an index: yes/no ')
bool_index = False
x = input("enter the value/index to be deleted ")


if by_index.lower() == 'yes':
    del(list[int(x)])

elif by_index.lower() == 'no':
    if x.isdigit():
        x = int(x)
    del(list[list.index(x)])

else:
    print('Error!')


print(list)

[1, 2, 3, 5]

0 голосов
/ 24 апреля 2018

Это дает вам ошибку, потому что вы хотите удалить int, но ваш ввод str.Ваш код будет работать только в том случае, если введено значение 'hi'.

Попробуйте:

arr = [1, 2, 3, "hi", 5]
x = input("enter the value to be deleted")  # x is a str!

if x.isdigit():  # check if x can be converted to int
    x = int(x)  

arr.remove(x)  # remove int OR str if input is not supposed to be an int ("hi")

И, пожалуйста, не используйте список в качестве имени переменной, потому что list - это функция и тип данных.

...