这是我试图变成列表理解的代码:
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中的三元运算符,a其条件b为true;否则为c。可以在理解语句中使用:
a if b else c
a
b
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))