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

>>> conditional = False
>>> x = [1 if conditional else 2, 3, 4]
[ 2, 3, 4 ]

但我该怎么做呢?
>>> conditional = False
>>> x = [1 if conditional, 3, 4]
[ 3, 4 ]

也就是说,我不想用1代替另一个数字。如果conditional为false,我只想省略它。

最佳答案

使用串联:

x = ([1] if conditional else []) + [3, 4]

换句话说,生成一个子列表,该子列表要么包含可选元素,要么为空。
演示:
>>> conditional = False
>>> ([1] if conditional else []) + [3, 4]
[3, 4]
>>> conditional = True
>>> ([1] if conditional else []) + [3, 4]
[1, 3, 4]

当然,这个概念也适用于更多元素:
x = ([1, 2, 3] if conditional else []) + [4, 5, 6]

09-19 07:08