首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蟒蛇的倒置切片

蟒蛇的倒置切片
EN

Stack Overflow用户
提问于 2012-10-29 03:11:13
回答 6查看 3.7K关注 0票数 6

有什么简单的方法来反演python中的列表切片吗?把所有东西都给我除了一片?例如:

给定列表a = [0,1,2,3,4,5,6,7,8,9],我希望能够提取[7,8,9,0,1,2],即除了a3:7之外的所有内容。

从逻辑上考虑,我认为a-3:3会给我想要的东西,但它只返回一个空列表。

我更喜欢一种同时适用于python 2和3的解决方案。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-29 03:14:52

如果你愿意销毁清单(或它的副本),你可以删掉你不想要的部分:

代码语言:javascript
复制
>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> a[3:7] = []
>>> a
[0, 1, 2, 7, 8, 9]

订单与您要求的不一样,尽管这对您可能并不重要。

票数 6
EN

Stack Overflow用户

发布于 2012-10-29 03:12:57

切片不是这样包装的,但是a[-3:] + a[:3]会给出这个列表。

票数 7
EN

Stack Overflow用户

发布于 2012-10-29 15:26:10

Itertools是你的朋友

代码语言:javascript
复制
itertools.islice(itertools.cycle(a),7,13)

或一般情况

代码语言:javascript
复制
itertools.islice(itertools.cycle(a),gapEnd,len(a)-gapLen)

这是一个生成器,所以您可以使用list(...)获得列表,或者在循环中使用它。作为生成器,它不创建列表的额外副本,也不销毁原始副本等。

代码语言:javascript
复制
>>> list(itertools.islice(itertools.cycle(a),7,13))
[7, 8, 9, 0, 1, 2]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13115435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档