是否可以在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))

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Is it possible to use ‘else’ in a python list comprehension?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 64 = 72