python - 是否可以在列表理解中使用 'else' ?

这是我试图转换为列表理解的代码:

table = ''
for index in xrange(256):
    if index in ords_to_keep:
        table += chr(index)
    else:
        table += replace_with

有没有办法将 else 语句添加到这个理解中?

table = ''.join(chr(index) for index in xrange(15) if index in ords_to_keep)

最佳答案

语法 a if b else c 是 Python 中的三元运算符,如果条件 b 为真,则计算结果为 a - 否则,它的计算结果为 c。它可以用在理解语句中:

>>> [a if a else 2 for a in [0,1,0,3]]
[2, 1, 2, 3]

所以对于你的例子,

table = ''.join(chr(index) if index in ords_to_keep else replace_with
                for index in xrange(15))

关于python - 是否可以在列表理解中使用 'else' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951701/

相关文章:

python - 为什么在 Pylint 认为不正确的条件值中使用 len(SEQUENCE)?

linux - 如何在 Bash 中给定超时后杀死子进程?

python - 为什么打印到标准输出这么慢?可以提速吗?

linux - 在远程 Linux 机器上编译 C++ - "clock skew detected

python - 如何将 Pandas 数据添加到现有的 csv 文件中?

linux - 从 URL 执行 bash 脚本

python - Django Admin - 更改标题 'Django administratio

python - 在 Python 中获取大文件的 MD5 哈希

python - 为什么使用 Python 的 os 模块方法而不是直接执行 shell 命令?

python - 如何在 Python 3.x 和 Python 2.x 中使用 pip