【python系统学习06】一张图看懂列表并学会操作
数据类型 - 列表(list)
目录:
一张图了解列表
先来一个脑图,一目了然
如果你看图看不懂我简写的是啥意思,可以看图下的详细信息。

列表是什么
列表是一堆元素的汇总,长得和JS中的数组一样。
它是数据类型的一种:复杂数据类型— —就是各种数据类型的集合
我们通常用列表+循环的方式来遍历多个元素。学习它很重要。
列表长啥样
语法格式
# 伪代码
列表变量名 = [ 元素1, 元素2, ...后边可以有多个无数个元素 ]
代码示例
# 记好这段代码,下边很多示例会用到
myName = ['小石头', 'xing.org1^', 181, True]
格式特征
列表名是我自定义的,如示例中我的“myName”。 用等号给变量赋值,等号右边的就是列表。 列表中各元素需要用中括号包裹 中括号里可以包裹N多个元素 多个元素之间用英文逗号分割开 列表中的各个元素的类型可以是任何值
列表定义
定义一个列表
myName = ['小石头', 'xing.org1^', 181, True]
列表操作 - 提取单个:偏移量
什么是偏移量
偏移量(又叫 下标)就是每个元素的编号,从左边第一个元素开始,编号从0一直到正无穷。
我习惯叫“下标”。
上例中,0就是偏移量。
通过偏移量来对列表进行索引(可理解为搜索定位),进而获取我们所需的元素。
偏移量提取示例
print(myName[0]) # 得到“小石头”
偏移量值的大小
当偏移量的值是小于或等于“列表长度-1”的话,我们用偏移量获取列表中的元素,则返回的是列表中我们想要的这个元素。
print(myName[0]) # 得到“小石头”
但当偏移量大于“列表长度-1”时,将会报错IndexError: list index out of range。
print(myName[4]) # 偏移量超出——IndexError: list index out of range
报错效果如下图:

偏移量提取的结果
结果是列表内的一个元素,数据类型取决于提取出来的那个元素是什么类型的。
列表操作 - 提取多个:切片
提取列表中的一个甚至多个元素用切片。具体切片是啥,见下边。
切片简介
写法上就是一个英文冒号,有时候左右会有数字,数字表示偏移量。
用冒号来截取列表元素的操作叫作切片。
切片示例
print(myName[:]) # ['小石头', 'xing.org1^', 181, True]
print(myName[2:]) # [181, True]
print(myName[:2]) # ['小石头', 'xing.org1^']
print(myName[1:3]) # [ 'xing.org1^', 181]
切片作用
是将列表中的一个或多个元素选中。选出来的可以是一个片段里的元素,所以会叫“切片”。
冒号搭配上列表名和中括号,就能将元素提取出来。
切片选中规则
1、冒号左边为空没有数字的话,就从列表的第一个元素开始截取,即偏移量从0开始取。
2、冒号右边为空没有数字的话,就一直取到列表的最后一个元素。
3、对于左边的数字,切片时是包含关系。
4、而对于右边的数字,切片时不会包括,会切到右边数字的前一个。当然,如果右边没有数字,会切到最后一个。
比如说,你想切出来下标(偏移量)为2的元素,那么右边的数字就应该填3。因为他不会切3,而是切到3的前一个。
切片提取的结果
提取的结果是一个列表。可以理解为拷贝了list中的一段出来,然后放到了一个新的列表里。
列表操作 - 增加:append()
向列表中增加一个元素用append,append是一个函数。用法使用列表调用即可。如下:
# 伪代码
列表变量名.append(参数)
append参数
1、参数类型:不限。可以是字符串、数字这样的单个元素,也可以是列表、字典这样的集合元素。
2、参数个数:一个,且必须填一个。如果多填或不填都会报TypeError错误。
myName.append() # 报错TypeError,必须要一个参数
# 报错如下
# myName.append()
# TypeError: append() takes exactly one argument (0 given)
append作用
append会把参数追加到列表的末尾。
增加内容后,列表的长度就会加一,增加的元素就会放在列表的末尾位置。
myName.append('')
print(myName) # ['小石头', 'xing.org1^', 181, True, '']
一个空串被追加到了列表myName的末尾,成为最后一个元素。
列表操作 - 删除:del()
del参数
参数个数:可1个,也可多个。
删除单个:偏移量
写法如下
del(myName[3]) # 删除掉True
填写你要删除元素所在列表内的偏移量到中括号中。用列表名[偏移量]的方式获取这个元素,然后当作参数传到del函数内当作参数即可将该元素从列表中删除。
上例中,偏移量3代表myName中的第四个元素“True”,用中括号+偏移量的方式提取出来后,再用del删除了。此时再打印myName发现“True”不在了。
隔段删除(多个元素):偏移量
发现了个有趣的例子,如下:
myName.append('')
print(myName)
del(myName[4])
print(myName)
del(myName[1],myName[2])
print(myName)
三个打印结果分别如下:
“
['小石头', 'xing.org1^', 181, True, '']
”
“
['小石头', 'xing.org1^', 181, True]
”
“
['小石头', 181]
”
第一个和第二个的打印,应该没有问题,myName.append('')往list后边增加了一个,空串成为偏移量为4所对应的元素。然后又del(myName[4])删除了第四个元素,所以打印第二行的内容和原来没增加前的myName又一样了。
但是第二个del我写的是del(myName[1],myName[2]),填写了两个参数,我希望删除“xing.org1^”和“181”这俩。
结果发现,删除的是“xing.org1^”和“True”。
我猜测它是先从“['小石头', 'xing.org1^', 181, True]”中删除第1个即“xing.org1^”。
之后列表变成“['小石头', 181, True]”,此时他再删除第2个,也就是“True”。
最后剩下了我们看到的打印结果:“['小石头', 181]”。
看来我们即使一次性向del中传递多个参数,他也是一个一个执行的。并且后一个参数删除是在前一个参数删除执行结果的基础上再做的工作。
删除片段(多个元素):切片
切片选中规则见上。
切片删除同偏移量一个原理。切片选中的片段被当作参数传递到del中,都会被删除。
所以直接看三个示例如下:
del(myName[:2]) # 偏移量0、1选中,删除掉 小石头、xing.org1^。myName剩下[181,True]
del(myName([2:])) # 偏移量2、3选中,删除掉 181、True。myName剩下[小石头,xing.org1^]
del(myName([1:3])) # 偏移量1、2选中,删除掉xing.org1^、181。myName剩下[小石头,True]
删除整个:切片
用切片删除所有选中元素
del(myName[:]) # myName成空list了。打印myName得到 []
删除整个:变量名
del参数为变量名,则删除整个list列表。
del(myName) # myName就不存在了,再访问报“未定义”的错
⚠️myName被删除后,就不存在了,再访问就会报“未定义”的错。
以上,就是关于列表的一些知识点,不够完善我今后继续补充,希望对看到的你我有点帮助。
【python系统学习06】一张图看懂列表并学会操作的更多相关文章
- 【python系统学习07】一张图看懂字典并学会操作
点击跳转 - 原文地址 数据类型 - 字典(dict) 目录: 一张图get字典 字典是什么 js的对象 字典长啥样 语法伪代码 示例demo 语法成像 字典怎么用 字典长度获取--len函数 提取字 ...
- 4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)
4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程) (2016-02-01 03:21:06) 转载▼ 标签: delphi ios delphi10 教程 编程 分类: 编程 ...
- 一张图看懂ANSYS17.0 流体 新功能与改进
一张图看懂ANSYS17.0 流体 新功能与改进 提交 我的留言 加载中 已留言 一张图看懂ANSYS17.0 流体 新功能与改进 原创2016-02-03ANSYS模拟在线模拟在线 模拟在线 ...
- FUNMVP:几张图看懂区块链技术到底是什么?(转载)
几张图看懂区块链技术到底是什么? 本文转载自:http://www.cnblogs.com/behindman/p/8873191.html “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人 ...
- [转帖]两张图看懂GDT、GDTR、LDT、LDTR的关系
两张图看懂GDT.GDTR.LDT.LDTR的关系 2018-06-09 18:13:53 Six_666A 阅读数 2044更多 分类专栏: 深入理解linux内核 转自:http://ju.o ...
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...
- 一张图看懂css的position里的relative和absolute的区别
position有以下属性:static.inherit.fixed.absolute.relative前三个好理解好区分:static:是默认状态,没有定位,元素出现在正常的流中(忽略 top, b ...
- 一张图看懂Function和Object的关系及简述instanceof运算符
我在写一篇图解prototype和__proto__的区别时,搜资料搜到了一个有意思的现象,下面这两个运算返回的结果是一样的: Function instanceof Object;//true Ob ...
- Nodejs学习笔记(三)——一张图看懂Nodejs建站
前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...
随机推荐
- axios发送POST时请求两次,第一次为OPTIONS
出现问题: 发送POST请求时浏览器产生两次请求,第一次为OPTIONS,第二次是真正的POST请求,后台接收不到参数. 查找原因: 非GET请求,会先发送OPTIONS进行预检(预检请求每次运行只发 ...
- CKEditor配置,最适合新手两种方式详解。
CKEditor.js的配置,大概有两种方式,这里有基础版和全面的版本可以试验 https://cdn.ckeditor.com/4.8.0/full-all/ckeditor.js http://c ...
- 爬虫工程师的unidbg入门教程
现在很多的app使用了so加密,以后会越来越多.爬虫工程师可能会直接逆向app,看java代码,完成java层的算法破解,但是如果遇到so该怎么办呢?可能你会直接破解so,但是真的会有很多爬虫工程师会 ...
- web.config修改文件修改上传大小
老是要修改上传文件大小的限制,先记在这里. <httpRuntime maxRequestLength= "1048576 " //最大长度 executionTimeout ...
- 机器学习算法概述第五章——CART算法
特点: 是一个二叉树,元素可以重复利用,可以做回归也可以做分类,分类用最小二乘法,即误差平方和最小 切割方法: 对于可量化的x来说: 切割点通常为两个x的平均值 左右两部分分别取均值,再评判以哪个分割 ...
- DEVOPS技术实践_18:Jenkins的Pinpeline对于参数的使用
因为最近使用Pipeline声明式语法构建项目,但是最近项目的参数设置较多,特地的来学习一下关于参数的调用和测试,主要式从一个大神那里学习的,结尾回贴上大神的博客链接 1 构建一个pipeline项目 ...
- 什么是特性(Attribute)?
由面向对象思想,我们诞生了很多种面向对象编程语言,比如常用的Java,C#,这些语言中都共有类(Class)的概念,并用各自的方式去阐述.编写Class,或许方式不同,但它们都有一个共同点,即“类是对 ...
- 1.1 Lack of free swap space on zabbix_server (zabbix监控报错)
1.首先看一下内存 free -m 2.然后创建一个分区添加交换文件 mkdir /home/temp dd if=/dev/zero of=/home/temp/swap bs=1024 count ...
- [vsCode实践] 实践记录
[vsCode实践] 实践记录 版权2019.5.1更新 Q1:代码中涉及到操作本地文件时,相对路径总是不对 操作本地文件时,路径方式有两种 相对路径 例如:代码文件所在路径/Users/tp0829 ...
- 浅谈Linux下/etc/passwd文件
浅谈Linux 下/etc/passwd文件 看过了很多渗透测试的文章,发现在很多文章中都会有/etc/passwd这个文件,那么,这个文件中到底有些什么内容呢?下面我们来详细的介绍一下. 在Linu ...