python 列表切片
列表切片是python语言独有的特征,大大方便了我们的编码。
首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数。
insert,get,set 操作均可传入负数下标
当传入的下标是负数时,python会自动的加上一个length,但只会加一次,也就是说如果这个负数超过了 - length ,那么就会报错了
list 的负数下标
a = [1, 2, 3, 4, 5]
# index = -1 + 5 = 4
# a[-1] == a[4]
print(a[-1]) #
当负数下标超过length
a = [1, 2, 3, 4, 5]
# index = -6 + 5 = -1
print(a[-6]) # IndexError: list index out of range
接下来是切片
list 的下标可以接收三个参数,分别是 beg (起始下标), end (结束下标) , step(步长)more,用冒号分隔
当 step > 0 : beg 默认值是0, end 默认值是 最末之后
当 step < 0 : beg 默认值是length-1, end默认值是 开头之前
当 step = 0: 报错
step 默认值是1
a = [1, 2, 3, 4, 5]
# step 默认值 1 ,当 step > 0, beg 默认值 0 ,end 默认值 最末之后
print(a[:]) # [1, 2, 3, 4, 5]
print(a[::]) # [1, 2, 3, 4, 5]
print(a[0:5:1]) # [1, 2, 3, 4, 5]
print(a[0:1000:1]) # [1, 2, 3, 4, 5] # 当 step < 0, beg 默认值 length-1 ,end 默认值 开头之前
print(a[::-1]) # [5, 4, 3, 2, 1]
print(a[len(a) - 1:-100:-1]) # [5, 4, 3, 2, 1]
切片产生的是列表的一个副本:
a = [1, 2, 3, 4, 5]
b = a[1:]
print(a) # [1, 2, 3, 4, 5]
print(b) # [2, 3, 4, 5]
切片的写操作:
a = [1, 2, 3, 4, 5]
a[1:] = ['a']
print(a) # [1, 'a']
end
python 列表切片的更多相关文章
- Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...
- python列表切片
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组. 格式:[start:end:step] start:起始索引,从0开始,-1表示结束 end:结束索引 step:步 ...
- Python列表切片详解([][:][::])
Python切片是list的一项基本的功能,最近看到了一个程序,里面有这样一句类似的代码: a = list[::10] 1 不太明白两个冒号的意思就上网百度,发现大多数人写的博客中都没有提到这一个用 ...
- python 列表切片之负数的含义代码示例
a = list(range(10)) print(a[::]) #复制一个列表 print(a[::2]) #每隔2个取一次 print(a[::3]) #每隔3个取一次 print(a[::-1] ...
- python之列表切片(slice)
使用索引获取列表的元素(随机读取) 列表元素支持用索引访问,正向索引从0开始 colors=["red","blue","green"] c ...
- python 输出所有大小写字母, range()以及列表切片
所以在写的时候,只要把它们的ASCII列出,并转化成字符型chr 即可. print [chr(i) for i in range(65,91)]#所有大写字母 print [chr(i) for i ...
- Python列表的切片操作
在Python列表中分片是一个很重要的操作,有以下几个注意的点: 切片时不包含最后一位,如下例子中,要取最后一位,从0开始算应该是到7就可以取,但是需要8才能取 2. 默认取值步长为1,即每 ...
- Python 之列表切片的四大常用操作
最近在爬一个网站的文档的时候,老师要求把一段文字切割开来,根据中间的文本分成两段 故学习了一段时间的切片操作,现把学习成果po上来与大家分享 1.何为切片? 列表的切片就是处理列表中的部分元素,是把整 ...
- python列表的索引与切片
<1>.python的列表 索引方式: 例如,list1 = ['张三','男','33','江苏','硕士','已婚',['身高178','体重72']] 1.正向单索引 print(l ...
随机推荐
- django使用MySQL数据库
在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库.一般较多的会选择MySQL. 下面介绍一下如何在Django中使用MySQL数据库. 一.安装MySQL ...
- 人脸识别demo使用教程
最近在研究虹软家的arcface 人脸识别 demo,现在就给大家分享一下官方的demo**工程如何使用? **1.下载代码:git clone https://github.com/asdfqwra ...
- pipenv+sublime text3 配置
这半年用docker管理开发环境 + vs code/编码 git + pycharm跑unittest 优点多多,实现了关注点分离 1 dockfile 直接隔离成独立的image 2 code对g ...
- shell和shell脚本基本知识
详情可见: https://www.cnblogs.com/yinheyi/p/6648242.html 这张图,可以帮助我们理解这个词语! 最底下是计算机硬件,然后硬件被系统核心包住,在系统核心外层 ...
- thinkphp5中如何使用 usort
thinkphp5中如何使用 usort 一.总结 一句话总结:其实比较函数加上命名空间就好啦,不然找不到 比较函数加命名空间 数组做usort的第二个参数 usort($question_list, ...
- (7)Pool进程池
(1)# 开启过多的进程并不一定提高你的效率 因为进程池可以实现并行的概念,比Process单核并发的速度要快 # 如果cpu负载任务过多,平均单个任务执行的效率就会低,反而降低执行速度. 1个人做4 ...
- 2017-2018-2 20165303 实验三《Java面向对象程序设计》实验报告
实验三 敏捷开发与XP实践-1 实验要求 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参 ...
- 20165303实验一 Java开发环境的熟悉
实验一简单的java程序编译及运行,文件夹的创建 1.添加文件夹: 命令mkdir+文件夹名称 2.编译,运行Java程序 :javac 主类名.java java 主类名 3.带包(package) ...
- English trip M1 - PC1 Are you a Model? 你是模特吗? Teacher:Taylor
In this lesson you will learn to talk about jobs. 课上内容(Lesson) What's your partner name? Her name is ...
- Axios的默认配置(碎片知识)API
axios API axios(config) axios({ method: 'Post', url: '/user/123', data: { //略 } }) axios(url[, confi ...