【问题标题】:python idiomatic python for loop if else statementpython 惯用 python for 循环 if else 语句
【发布时间】:2023-03-27 16:47:01
【问题描述】:

如何在惯用的 Python for 循环中使用 else 语句?没有else 我可以写例如:

res = [i for i in [1,2,3,4,5] if i < 4]

结果是:[1, 2, 3]

上述代码的正常形式是:

res = []
for i in [1,2,3,4,5]:
    if i < 4:
        res.append(i)

结果与惯用形式相同:[1, 2, 3]

我想要这个:

res = [i for i in [1,2,3,4,5] if i < 4 else 0]

我收到SyntaxError: invalid syntax。结果应该是:[1, 2, 3, 0, 0] 正常的代码是:

res = []
for i in [1,2,3,4,5]:
    if i < 4:
        res.append(i)
    else:
        res.append(0)

结果是:[1, 2, 3, 0, 0]

【问题讨论】:

    标签: python if-statement for-loop idioms


    【解决方案1】:

    您已经很接近了,您只需将三元组移动到您正在创建值的列表理解部分。

    res = [i if i < 4 else 0 for i in range(1,6)] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多