@FellowT

Как удалить элемент из списка в Python?

Итак у меня есть код:

shop = [['картофель', 100], ['хлеб', 36], ['кефир', 30]]
print('Что вы хотите удалить?')
a = input()
if a in shop:
    shop.remove(a)
    print(shop)
else:
    print('Его нет')


И когда я ввожу, например, картофель, то он выводит:

Что вы хотите удалить?
картофель
Его нет

Вопрос: Как мне убрать элемент из shop, который я хочу при вводе в "a"?
  • Вопрос задан
  • 1157 просмотров
Решения вопроса 1
FellowT, у Вас список состоит из списков.
Каждый элемент Вашего списка - отдельный список.
Таким кодом не проверить... Нужно выполнить перебор всех элементов списка
shop = [['картофель', 100], ['хлеб', 36], ['кефир', 30]]
print('Что вы хотите удалить?')
a = input()
for i in range(len(shop)):
    if shop[i][0] == a:
        shop.remove(shop[i])
        print(shop)
        break
else:
    print('Его нет')
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@kirillinyakin
Как один из вариантов, вместот списка использовать словарь
shop = {'картофель': 100, 'хлеб': 36, 'кефир': 30}
print('Что вы хотите удалить?')
a = input()
if a in shop:
    del shop[a]
    print(shop)
else:
    print('Его нет')
Ответ написан
Комментировать
@Vladislafff
Как вариант такой код, все мои изменения я закомментировал

shop = [['картофель', 100], ['хлеб', 36], ['кефир', 30]]
print('Что вы хотите удалить?')
a = input()
items = [] # дополнительный список, который будет хранить названия продуктов
for item in shop:
    items.append(shop[shop.index(item)][0]) # запись продуктов в новый список
if a in items: # поиск продукта в списке с названиями
    shop.pop(items.index(a)) # items.index(a) - номер продукта в списке
    items.remove(a) #удаление продукта из исходного списка и из нового
    print(shop)
else:
    print('Его нет')
Ответ написан
@sunsexsurf
IT & creative
решение со словарем и try-except - оч хорошее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы