Can I optionally include one element in a list without an else statement in python?

前端 未结 4 640
闹比i
闹比i 2020-12-20 18:00

I know you can do something like this in python:

>>> conditional = False
>>> x = [1 if conditional else 2, 3, 4]
[ 2, 3, 4 ]
4条回答
  •  [愿得一人]
    2020-12-20 18:10

    Use concatenation:

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

    In other words, generate a sublist that either has the optional element in it, or is empty.

    Demo:

    >>> conditional = False
    >>> ([1] if conditional else []) + [3, 4]
    [3, 4]
    >>> conditional = True
    >>> ([1] if conditional else []) + [3, 4]
    [1, 3, 4]
    

    This concept works for more elements too, of course:

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

提交回复
热议问题