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

Я делаю программу на языке 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 ответа

Решение

Это дает вам ошибку, потому что вы хотите удалить 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 это функция и тип данных.

Работает с '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]

Другие вопросы по тегам