python中的切片
2016-01-01 21:54
656 查看
现在有一个list
如果想不用循环输出其中某一部分的数字,或者正序或者逆序,用切片实现就很方便。
切片的形式大概是这样[a:b:c] 其中c的正负用来控制遍历方向,如果是正数则顺序遍历,如果是负数则逆向遍历。此外,c的值还可以用来指定遍历的跨度,也就是一次向前或者是向后移动几个单位。
带负数的遍历范围转换成正数,只要把数组大小加上这个负数就对了
比如
二者输出结果一样
见如下代码:
下面这段解释是从廖雪峰老师博客的评论区里面复制下来的~
a[start:end:step] # start through not past end, by step
The key point to remember is that:
the :end value represents the first value that is not in the selected slice.
上面是stackoverflow上的答案。
end是不包含在slice中的。对于strat和end数字同号的情况来说,输出的元素为|end-start|个(if(step)=1).如果它们异号,切片元素个数为n-|strat|-|end| (if(step)=1)
可见,end都是不会输出的。还有一点要注意正数,以0开始,倒着数以-1开始。
同样,step不是1或者-1的,从第一个开始数,隔step个,得到一个切片,直到end就停下来。还是不包括end
[code]L=list(range(20))
如果想不用循环输出其中某一部分的数字,或者正序或者逆序,用切片实现就很方便。
切片的形式大概是这样[a:b:c] 其中c的正负用来控制遍历方向,如果是正数则顺序遍历,如果是负数则逆向遍历。此外,c的值还可以用来指定遍历的跨度,也就是一次向前或者是向后移动几个单位。
带负数的遍历范围转换成正数,只要把数组大小加上这个负数就对了
比如
[code]l=list(range(20)) print (l[2:-1]) print (l[2:19)
二者输出结果一样
见如下代码:
[code]#!/usr/bin/env python3 # -*- coding: utf-8 -*- L=list(range(20)) print (L[4:10]) #取4到10之间的元素 print (L[0:10]) #取前十个元素 print (L[:10]) #取前十个元素 print (L[0:15:3]) #取前十五个元素,每隔3个元素 print (L[:15:3]) #取前十五个元素,每隔3个元素 print (L[0:-10]) #$还是取前十个 print (L[-10:0]) #啥也没有 print (L[-10:-1]) #10到18 print (L[-10:]) #10到19 print (L[-10:-1:2])#10到18,每隔两个输出 print (L[-10::2]) #10到19每隔两个输出 print (L[10::-1]) #输出10到0 print (L[10:4:-1]) #10到5 print (L[10:2:-2]) #10到3 每隔两个输出 print (L[-1:-10:-2])#19到11 每隔两个输出
下面这段解释是从廖雪峰老师博客的评论区里面复制下来的~
a[start:end:step] # start through not past end, by step
The key point to remember is that:
the :end value represents the first value that is not in the selected slice.
上面是stackoverflow上的答案。
end是不包含在slice中的。对于strat和end数字同号的情况来说,输出的元素为|end-start|个(if(step)=1).如果它们异号,切片元素个数为n-|strat|-|end| (if(step)=1)
[code]l=[1,2,3,4,5] l[1:3] #输出是[2,3] l[3:1:-1] #输出[4,3] l[-3:-1] #输出[3,4] l[-1:-3:-1] #输出[5,4] l[2:-1] #输出[3,4] l[-1:2:-1] #输出[5,4]
可见,end都是不会输出的。还有一点要注意正数,以0开始,倒着数以-1开始。
同样,step不是1或者-1的,从第一个开始数,隔step个,得到一个切片,直到end就停下来。还是不包括end
[code]l[1:4:2] #[2,4] l[1:4:3] #[2]
相关文章推荐
- Python 一些常用模块的安装
- Python安装easy_install报错的处理方式
- leetcode之Bulb Switcher
- 第1章 Python简介
- 第2章 Python基础语法--Hello python
- win64位 安装python opencv
- super函数
- leetcode之Wiggle Sort II
- 关于python的open函数的误区。
- Python Concurrent Programming
- python升级
- python升级
- python学习(三) 条件判断和循环
- Principle of Computing (Python)学习笔记(5) BFS Searching + Zombie Apocalypse
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
- python 中模块的使用
- Caffe学习系列(13):数据可视化环境(python接口)配置
- python中函数的使用
- python中的条件选择语句和循环语句