加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

切片以反转python中列表的一部分

发布时间:2020-12-20 11:59:37 所属栏目:Python 来源:网络整理
导读:我有一个列表,我想从后到尾提取一个子列表.有两行代码,这是 mylist = [...]mysublist = mylist[begin:end]mysublist = mysublist[::-1] 是否有切片符号在一行中获得相同的效果?这个 mysublist = mylist[end:begin:-1] 是不正确的,因为它包含结尾并排除了beg
我有一个列表,我想从后到尾提取一个子列表.有两行代码,这是

mylist = [...]
mysublist = mylist[begin:end]
mysublist = mysublist[::-1]

是否有切片符号在一行中获得相同的效果?这个

mysublist = mylist[end:begin:-1]

是不正确的,因为它包含结尾并排除了begin元素.这个

mysublist = mylist[end-1:begin-1:-1]

当begin为0时失败,因为begin-1现在是-1,它被解释为mylist的最后一个元素的索引.

解决方法

如果begin为0,请使用None:

mysublist = mylist[end - 1:None if not begin else begin - 1:-1]

无意味着’默认’,与省略值相同.

您始终可以将条件表达式放在单独的行中:

start,stop,step = end - 1,None if not begin else begin - 1,-1
mysublist = mylist[start:stop:step]

演示:

>>> mylist = ['foo','bar','baz','eggs']
>>> begin,end = 1,3
>>> mylist[end - 1:None if not begin else begin - 1:-1]
['baz','bar']
>>> begin,end = 0,'foo']

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读