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))