Python列表初始化中的条件术语

时间:2016-11-18 03:28:39

标签: python conditional list-comprehension nonetype

我想做这样的事情:

nil

如果a为None,则列表b应该是一个元素,如果a不是None,则列表b应该是两个元素。这在Python中是可行的还是我必须使用单独的if检查后跟add()?

4 个答案:

答案 0 :(得分:3)

看起来不是最好的,但你可以做到

b = [1] + ([a] if a is not None else [])

当然,最好检查一下,因为它增加了代码的可读性。

答案 1 :(得分:2)

a = some_funct()
b = [ 1, a ] if a is not None else [1]

答案 2 :(得分:1)

您可以使用列表理解

来完成此操作
262144

元组getconf ARG_MAX是总集合,b将成为该总集合中不是Argument list too long

的所有元素的列表

答案 3 :(得分:1)

我对这个游戏来说太晚了,但我有同样的问题,在看到其他答案之后,我使用sets找到了这个解决方案:

list({1, a or 1})