Python 如何在列表理解中添加多个变量

Python 如何在列表理解中添加多个变量,python,list,list-comprehension,Python,List,List Comprehension,我在列表中有一个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, en

我在列表中有一个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]
谢谢

years = [year for index, year in enumerate((start_year, end_year))
         if index == 0 or start_year != end_year]
如你所愿。。。但是它像猪一样丑陋


如你所愿。。。但是它像猪一样丑陋。

如果/否则可以合并成一行:

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

请注意,这不是一个“列表理解”,因为对于循环没有

如果/else
可以合并为一行:

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

请注意,这不是“列表理解”,因为对于循环没有

这需要列表理解,还是仅仅一行?这本书可读性很强,避免了太过花哨的动作(与你的例子非常相似):
years=[start\u year]如果start\u year==end\u year,那么[start\u year,end\u year]
你想要什么结果?列表理解是“创建”列表的习惯用法,你所做的是基于条件的简单赋值。你可能需要给我们更多的上下文。是的,一行是最明智的方法。这需要是一个列表理解,还是仅仅一行?这本书可读性很强,避免了太过花哨的动作(与你的例子非常相似):
years=[start\u year]如果start\u year==end\u year,那么[start\u year,end\u year]
你想要什么结果?列表理解是“创建”列表的习惯用法,你所做的是基于条件的简单赋值。你可能需要给我们更多的背景。是的,一行是最明智的方法。