是否可以在列表理解中使用“ 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)


HUWWW
浏览 387回答 3
3回答

青春有我

如果您想要的是else您不想过滤列表理解,则希望它遍历每个值。您可以改用true-value if cond else false-value作为语句,并从最后删除过滤器:table = ''.join(chr(index) if index in ords_to_keep else replace_with for index in xrange(15))

慕仙森

语法a if b else c是Python中的三元运算符,a其条件b为true;否则为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))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python