热线电话:13121318867

登录
2019-01-30 阅读量: 777
关于python 列表推导式 if else 组合

关于python列表推导式中if else中始终不太理解,求指导

具体如代码如下

list_range=[1,2,3,4,5]
cnum=5
list_range[(cnum-3) if (cnum-3)>0 else 0:cnum-1]

最终输出结果为[3,4]

按照我的理解,cnum=5,满足if条件,那么应该是list_range[2],即输出的值应为为3,现在输出的是[3,4]

百思不得其解啊,难道满足条件后, cnum-3的值将 0:cnum-1前面的0替换了?

答:这个list_range[]的中括号里有冒号,说明最终结果是列表切片,是一个范围,有start和end

cnum = 5,所以if else 返回 true,即:

start=cnum-3=2

end=cnum-1 = 5-1 = 4

最终表达式:list_range[2:4],所以是[3,4]

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子