为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在列表理解中使用“ else”?

是否可以在列表理解中使用“ else”?

HUWWW 2019-11-06 10:48:53
这是我试图变成列表理解的代码: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)
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果您想要的是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))


查看完整回答
反对 回复 2019-11-06
?
慕仙森

TA贡献1827条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信