#list
Вопрос:
Я хочу создать приложение для составления списка покупок на заказ с использованием python. Я хочу, чтобы приложение давало мне список товаров в порядке их расположения, когда я хожу по своему магазину.
Как написать код на python, который переупорядочивает список так, чтобы элементы отображались в специально заданном порядке.
Например, если бы в мои покупки входили: яйца, молоко, бекон, хлеб, помидоры. Я хочу написать код так, чтобы независимо от того, что я ввожу в список, вывод всегда сортировался так, чтобы при печати списка хлеб был первым, помидоры-вторым и т. Д.
Ответ №1:
Робин, добро пожаловать на Stack Exchange. Вот подход (я оставлю код вам): Создайте словарь, который сопоставляет товары в их порядке в магазине. Затем, получив список покупок, отсортируйте его на основе значений словаря для элементов в списке.
Ответ №2:
Это зависит от того, знаете ли вы, что всегда будет в вашем списке (всегда ли будут одни и те же пункты).
Если бы вы знали, вы могли бы использовать словарь, чтобы связать каждый известный элемент с его индексом в списке. Например:
shoppingorder = {"bread":0, "tomatoes":1} #The number is the index for the item
shoppinglist = []
shoppinglist.insert(shoppingorder["bread"], "bread")
Вы также можете объединить это с вводом:
item = input("Please enter a shopping item")
for x in range(len(shoppingorder)):
shoppinglist.append("") #To avoid index errors
if item in shoppingorder:
shoppinglist.insert(shoppingorder[item], item)
else:
print(item " is not in the list of valid items!")
Если вы не знаете товары или их заказы, вам нужно будет попросить пользователя указать индекс для товара при вводе и сохранить его в словаре:
shoppingorder = {}
shoppinglist = []
item = input("Enter the item")
order= int(input("Enter the position in the list"))
shoppingorder[item] = order
Приведенный выше код очень прост, и вам нужно будет самостоятельно добавить обработку ошибок, обработку дубликатов и надлежащие инструменты ввода по мере необходимости.