如何使用python切割索引中的每个第n个元素?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用python切割索引中的每个第n个元素?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1296字,纯文字阅读大概需要2分钟。
内容图文
![如何使用python切割索引中的每个第n个元素?](/upload/InfoBanner/zyjiaocheng/728/5b2d049308e0466d94a35c2d4b9fccab.jpg)
参见英文答案 > Rolling or sliding window iterator? 19个
这可能看起来像一个简单的问题,但我无法找出解决方案.
假设我有这个清单
my_list = [1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99]
我试图在此列表中切片项并通过索引递增它.简而言之,我想得到这样的结果
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 11]
[9, 11, 22]
[11, 22, 33]
[22, 33, 44]
[33, 44, 55]
[44, 55, 66]
[55, 66, 77]
[66, 77, 88]
[77, 88, 99]
但我得到的是这样的
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 11]
[9, 11, 22]
[11, 22, 33]
[22, 33, 44]
[33, 44, 55]
[44, 55, 66]
[55, 66, 77]
[66, 77, 88]
[77, 88, 99]
[88, 99]
[99]
我想将my_list切片到几个长度为3的较小的集合.但是我得到的结果还包括长度低于3的列表.
这是我使用的python脚本
my_list = [1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99]
m = 0
def incr():
global m
for n in range(len(my_list)):
if n < len(my_list):
n = m + 3
new_list = my_list[m:n]
print new_list
m+=1
else:
pass
incr()
我想我可以添加len(new_list)< 3但我不太确定如何修改脚本. 谢谢您的帮助.
解决方法:
[my_list[i:i+3] for i in range(len(my_list)-2)]
小解释:
>我用了List Comprehensions
>结果列表具有的项目数为len(my_list)-2)
>每个结果项都是从原始列表切割三个连续项[i:i 3]
>我从0开始获取结果列表的第一项,然后移动一个位置(增加1)以获得第二项,依此类推.
内容总结
以上是互联网集市为您收集整理的如何使用python切割索引中的每个第n个元素?全部内容,希望文章能够帮你解决如何使用python切割索引中的每个第n个元素?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。