Сортировка ланча в списке питонов - PullRequest
2 голосов
/ 28 апреля 2019

Я пытаюсь форматировать список с обедом в моей школе каждый день, который я получаю через API (один обычный и вегетарианский вариант) в Python. Иногда список будет содержать только один элемент, когда школа закрыта. Вот переведенная версия списка, который я получаю от API:

[['Closed'], ['Pasta Al Carne с измельченной говядиной, томатной сальсой и тертым сыром' ',' Pasta with ratatouille '], [' Блин с творогом и джемом ',' Блин с творогом и джемом '], [' Панированное филе рыбы с холодным соусом и отварной картофель ',' Вегетарианская мусака '], [' Гамбургеры с хлебом и классическими аксессуарами ',' Вегетарианские бургеры с классическими аксессуарами ']]

Прямо сейчас у меня есть этот код: "Monday: {}\nTuesday: {}\nWednesday: {}\nThursday: {}\nFriday: {}".format(*lunch) что выводит на это:

Понедельник: ['Закрыто']

Вторник: ['Паста Аль Карне с тертым стейком, томатной сальсой и тертым сыр ',' Макароны с рататуем ']

и т.д ...

Как я могу отформатировать каждый день по отдельности, чтобы он выглядел больше так?

Понедельник: выходной

Вторник: паста Аль Карне с тертым стейком, томатной сальсой и тертым сыр. Вегетарианская: паста с рататуем

Среда: блин с творогом и джемом. Вегетарианец: блины с творогом и джемом

и т.д ...

Я некоторое время искал, как форматировать списки в Python, но, поскольку я новичок, довольно сложно понять, что искать. Спасибо!

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Простой join - это то, что вам нужно здесь:

data = [['Closed'], ['Pasta Al Carne with shredded beef, tomato salsa and grated cheese', 'Pasta with ratatouille'], ['Pancake with cottage cheese and jam', 'Pancake with cottage cheese and jam'], ['Breaded fish fillet with cold sauce boiled potatoes', 'Vegetarian moussaka'], ['Hamburgers with bread and classic accessories',' Vegetarian burgers with classic accessories']]

lunch = [', '.join(item) for item in data]
print("Monday: {}\nTuesday: {}\nWednesday: {}\nThursday: {}\nFriday: {}".format(*lunch))

хитрость здесь заключается в функции str.join, которая позволяет использовать строку, в нашем случае "," в качестве разделителя для элементов списка

0 голосов
/ 28 апреля 2019

почтовый индекс (* итераций)

zip (iterator1, iterqator2, iterator3 ...)

Создайте итератор, который агрегирует элементы из каждого из повторяемых элементов.

Возвращает итератор кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности аргументов или итераций. Итератор останавливается, когда кратчайший итеративный ввод исчерпан.

обед = [['Закрыто'], ['Паста Аль Карне с тертой говядиной, томатной сальсой и тертым сыром', 'Паста с рататуем'], ['Блины с творогом и джемом', 'Блины с творогом и варенье '], [' Панированное рыбное филе с отварным картофелем в холодном соусе ',' Вегетарианская мусака '], [' Гамбургеры с хлебом и классическими аксессуарами ',' Вегетарианские бургеры с классическими аксессуарами ']] дни = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница']

r =list(zip(days, lunch)) # ('Monday', ['Closed']), ('Tuesday', ['Pasta Al Carne with shredded beef, tomato salsa and grated cheese', 'Pasta with ratatouille']), ...
for item in r:
    if 'Closed' not in item[1]: # Check if closed
        print ("{}: {}. Vegeterian: {}".format(item[0], item[1][0], item[1][1]))
    else:
        print ("{}: {}".format(item[0], item[1][0]))

выход:

Monday: Closed
Tuesday: Pasta Al Carne with shredded beef, tomato salsa and grated cheese. Vegeterian: Pasta with ratatouille
Wednesday: Pancake with cottage cheese and jam. Vegeterian: Pancake with cottage cheese and jam
Thursday: Breaded fish fillet with cold sauce boiled potatoes. Vegeterian: Vegetarian moussaka
Friday: Hamburgers with bread and classic accessories. Vegeterian:  Vegetarian burgers with classic accessories
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...