Как добавить несколько переменных в понимание списка - PullRequest
0 голосов
/ 25 августа 2018

У меня есть предложение if / else в понимании списка, и я хотел бы знать, как я могу добавить несколько переменных.

Вот код, если я использую оператор if / else:

if start_year == end_year:
    years = [start_year]
else:
    years = [start_year, end_year]

Вот как я хотел бы, чтобы это выглядело с пониманием списка, однако это неверно, потому что он привязывается к концу_ года из-за разделения запятой.

years = [start_year if start_year == end_year else start_year, end_year]

Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

if/else может быть объединен в 1 строку:

years = [start_year] if start_year == end_year else [start_year, end_year]

Обратите внимание, что это не «понимание списка», поскольку нет цикла for.

0 голосов
/ 25 августа 2018
years = [year for index, year in enumerate((start_year, end_year))
         if index == 0 or start_year != end_year]

Как пожелаешь ... все же уродливо, как свинья.

...