Найти пиццу по ширине. Как найти по нескольким размерам сразу?
Найти пиццу по ширине
[['Четыре сыра','30','900'],
['Гавайская','25','1000'],
['Пепперони','20','1000'],
['Мексиканская','20','800'],
['Маргарита','15','750']]
Например: 30, 15
[['Четыре сыра','30','900'],
['Маргарита','15','750']]
Как найти по нескольким размерам сразу?
Pizza = [['Четыре сыра', '30', '900'],
['Гавайская', '25', '1000'],
['Пепперони', '20', '1000'],
['Мексиканская', '20', '800'],
['Маргарита', '15', '750']]
Pizza_size = str(input())
for i in Pizza:
if i[1] == Pizza_size:
print(i)
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Можно добавить обработку введенного размера, чтобы получить список размеров, после при переборе пицц, проверить входит ли размер в заданный список размеров
После тестирования алгоритма, оставите pizza_size = input(), чтобы задавать извне
Pizza = [
['Четыре сыра', '30', '900'],
['Гавайская', '25', '1000'],
['Пепперони', '20', '1000'],
['Мексиканская', '20', '800'],
['Маргарита', '15', '750']
]
pizza_size = '30, 15'
# pizza_size = input()
need_sizes = pizza_size.strip().replace(' ', '').split(',')
# ['30', '15']
for x in Pizza:
if x[1] in need_sizes:
print(x)
Результат:
['Четыре сыра', '30', '900']
['Маргарита', '15', '750']
Автор решения: TigerTV.ru
→ Ссылка
Так как в один прекрасный день вы захотите выводить пиццы больше\меньше определенного размера, то лучше сразу преобразовать строки в числа.
pizzas = [
['Четыре сыра', '30', '900'],
['Гавайская', '25', '1000'],
['Пепперони', '20', '1000'],
['Мексиканская', '20', '800'],
['Маргарита', '15', '750']
]
pizzas = [[x[0], int(x[1]), int(x[2])] for x in pizzas]
pizza_sizes = '20 25' # input()
pizza_sizes = [int(x) for x in pizza_sizes.split()]
print(*filter(lambda x: x[1] in pizza_sizes, pizzas))
# ['Гавайская', 25, 1000] ['Пепперони', 20, 1000] ['Мексиканская', 20, 800]