【问题标题】:How can I add nothing to the list in list comprehension?如何在列表理解中向列表中添加任何内容?
【发布时间】:2015-05-24 15:36:41
【问题描述】:

我正在用 Python 写一个列表推导:

[2 * x if x > 2 else add_nothing_to_list for x in some_list]

我需要“add_nothing_to_list”部分(逻辑的 else 部分)实际上什么都不是。

Python 有办法做到这一点吗?特别是,有没有办法说a.append(nothing) 会使a 保持不变。这是编写通用代码的有用功能。

【问题讨论】:

    标签: python list list-comprehension


    【解决方案1】:

    只需将条件移到最后一个

    [2 * x for x in some_list if x > 2]
    

    引用List Comprehension documentation

    列表理解由包含表达式的括号组成,后跟 for 子句,然后是零个或多个 forif 子句。结果将是一个新的列表,由评估产生在其后的 forif 子句的上下文中的表达式。

    在这种情况下,表达式是2 * x,然后是for 语句for x in some_list,然后是if 语句if x > 2

    这个理解可以这么理解

    result = []
    for x in some_list:
        if x > 2:
            result.append(x)
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多