我可以选择在列表中包含一个元素而不在python中使用else语句吗?

Cau*_*tic 4 python syntax list

我知道你可以在python中做这样的事情:

>>> conditional = False
>>> x = [1 if conditional else 2, 3, 4]
[ 2, 3, 4 ]
Run Code Online (Sandbox Code Playgroud)

但我怎么做这样的事呢?

>>> conditional = False
>>> x = [1 if conditional, 3, 4]
[ 3, 4 ]
Run Code Online (Sandbox Code Playgroud)

也就是说,我不想替换1另一个数字.如果conditional是假的话,我想简单地省略它.

Mar*_*ers 11

使用连接:

x = ([1] if conditional else []) + [3, 4]
Run Code Online (Sandbox Code Playgroud)

换句话说,生成一个子列表,该子列表中包含可选元素,或者为空.

演示:

>>> conditional = False
>>> ([1] if conditional else []) + [3, 4]
[3, 4]
>>> conditional = True
>>> ([1] if conditional else []) + [3, 4]
[1, 3, 4]
Run Code Online (Sandbox Code Playgroud)

当然,这个概念也适用于更多元素:

x = ([1, 2, 3] if conditional else []) + [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)