Как я могу удалить целые числа из списка (целых чисел и строк), взяв какое значение удалить из пользовательского ввода?
Я делаю программу на языке 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]