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)


暂无数据
推荐帖子
0条评论
0条评论
0条评论