代码之家  ›  专栏  ›  技术社区  ›  coanor

蟒蛇2。7使用nop的列表操作

  •  0
  • coanor  · 技术社区  · 7 年前

    我想根据 condition :

    arr = ['abc', ('def' if condition else NOP)]
    

    这里,如果条件为假,我该怎么处理 NOP 当我想的时候 arr 只包含 abc ?

    3 回复  |  直到 7 年前
        1
  •  5
  •   Reut Sharabani    7 年前

    换一行就行了:

    arr = ['abc']
    if condition:
        arr.append('def')
    
        2
  •  3
  •   Rafał    7 年前
    arr = ['abc'] + (['def'] if condition else [])
    
        3
  •  0
  •   tobias_k    7 年前

    还可以使用嵌套条件生成器:

    >>> ['abc', *(x for x in ['def'] if True), 'ghi']
    ['abc', 'def', 'ghi']
    >>> ['abc', *(x for x in ['def'] if False), 'ghi']
    ['abc', 'ghi']
    

    不过,不确定这是否更干净;也许如果有更多的元素。