list comprehension列表本身是None

mor*_*fys 3 python list-comprehension

有没有办法让我处理列表理解中列表my_list本身可以为None的情况:

[x for x in my_list]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

[x for x in my_list if my_list is not None else ['1']]
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不起作用.

Joh*_*024 8

我认为这样做你想要的:

>>> my_list = None
>>> [x for x in my_list] if my_list is not None else ['1']
['1']
Run Code Online (Sandbox Code Playgroud)

这里的变化是将三元语句移到列表理解之外.

或者,如果我们添加一些parens,我们可以将三元语句保持在列表理解中:

>>> my_list = None
>>> [x for x in (my_list if my_list is not None else ['1'])]
['1']
Run Code Online (Sandbox Code Playgroud)