是否有可能在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中三元运算符的计算结果为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))
如果你想要else
你不想过滤列表理解,你希望它遍历每个值。 true-value if cond else false-value
作为语句, true-value if cond else false-value
可以使用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))
要在Python编程中使用列表解析中的else
,可以尝试下面的代码片段。 这将解决您的问题,该片段在python 2.7和python 3.5上测试。
obj = ["Even" if i%2==0 else "Odd" for i in range(10)]
链接地址: http://www.djcxy.com/p/26807.html
上一篇: Is it possible to use 'else' in a python list comprehension?