20190805-Python基础 第二章 列表和元组(2)列表
1. list函数,用于将字符串转换为列表
2. 基本的列表操作
修改列表 - 给元素赋值,使用索引表示法给特定的元素赋值,如x[1] = 2
删除元素 - 使用del语句即可
name1 = ['a','d','g','h']
name2 = ['','','','']
del name1[1]
print(name1)
print(len(name1)) del name2[1:3]
print(name2)
print(len(name2)) 结果:
['a', 'g', 'h']
3
['', '']
2
给切片赋值 - 同时给多个元素赋值
name = list('Perl')
name[1:] = list('ython')
print(name)
结果:
['P', 'y', 't', 'h', 'o', 'n']
给切片赋值 - 插入新元素(此时,切片工具中的第一个索引和第二个索引必须相同)
name = list('Perl')
name[1:1] = list('ython')
print(name)
结果:
['P', 'y', 't', 'h', 'o', 'n', 'e', 'r', 'l']
3. 列表方法
方法是与对象(列表、数、字符串等)联系紧密的函数。调用方法:
object.method(arguments)
3.1 append - 将一个对象附加到列表末尾 - P34
3.2 clear - 就地清空列表内容
list1 = [,,]
list1.append()
print(list1)
list1.clear()
print(list1)
结果:
[, , , ]
[]
3.3 copy - 复制列表
a = [1,2,3,4]
b = a
b[1] = 5
print(a)
print(b)
结果:
[1, 5, 3, 4]
[1, 5, 3, 4]
上述直接赋值的方法,让b指向a,并不能真正意义上复制一个列表给b,因为他们同时指向了同一个列表,则修改b也是在修改原列表。
a = [1,2,3,4]
b = a.copy()
b[1] = 6
print(a)
print(b)
结果:
[1, 2, 3, 4]
[1, 6, 3, 4]
3.4 count - 计算指定的元素在列表中出现的次数
tobe = ['to','be','or','not','to','be']
print(tobe.count('to'))
结果:2 x = [[1,2],1,1,[2,1,[1,2]]]
print(x.count(1))
print(x.count([1,2]))
结果:2,1
3.5 extend - 同时将多个值附加到列表末尾(将修改被扩展的序列)
a = [1,2,3]
b = ['a','b','c','d']
a.extend(b)
print(a)
结果:
[1, 2, 3, 'a', 'b', 'c', 'd']
a = [1,2,3]
b = ['a','b','c','d']
# 这里看看差异
c = a.extend(b)
print(a)
结果:
[1, 2, 3, 'a', 'b', 'c', 'd']
这里如果将c = a.extend(b)(新建一个c变量指向 a.extend(b) ),实际上c变量什么都没有,为None。
3.6 index - 用于在列表中查找指定值第一次出现的索引(若所查找值不属于该列表,则会报错)
a_list = ['a','b','c','d']
print(a_list.index('c'))
结果:2
3.7 insert - 用于将一个对象插入列表
num = [1,2,3,4]
num.insert(2,['a','b','c'])
print(num)
结果:
[1, 2, ['a', 'b', 'c'], 3, 4]
同extend一样,也可以使用切片赋值,来获得一样的效果。
3.8 pop
从列表中删除一个元素(末尾为最后一个元素),并返回一个元素
num = [1,2,3,4]
c = num.pop(2)
print(num)
print(c)
结果:
[1, 2, 4]
3
pop是唯一既修改列表又返回一个非None值得列表方法,参见3.5。
*** pop可实现一种常见得数据结构——栈(stack),后进先出。(待拓展学习,参见第10章)
3.9 remove
用于删除第一个为指定值得元素。
tobe = ['to','be','or','not','to','be']
tobe.remove('to')
print(tobe)
结果:
['be', 'or', 'not', 'to', 'be']
3.10 reverse
按相反得顺序排列列表中的元素。
num = [1,2,3,4]
num.reverse()
print(num)
结果:
[4, 3, 2, 1]
3.11 sort - 用于对列表就地排序(对原列表进行修改,不返回排序后列表副本)
x = [6,4,5,3,2,0,1]
x.sort()
print(x)
print()
结果:
[0, 1, 2, 3, 4, 5, 6]
需要排序后的列表副本,并保持原列表不变时,有如下两个方法
x1 = [6,4,5,3,2,0,1]
# 方法1
y1 = x1.copy()
y1.sort()
print(x1)
print(y1)
print()
# 方法2用sorted()函数,改函数会返回一个列表
y2 = sorted(x1)
print(y2)
11 结果:
12 [6, 4, 5, 3, 2, 0, 1]
13 [0, 1, 2, 3, 4, 5, 6]
14 [0, 1, 2, 3, 4, 5, 6]
3.12 高级排序
方法sort接受两个可选关键字参数:key和reverse。
参数key,可将其设置为一个用于排序的函数(很多情况下,将参数key设置为一个自定义函数很有用,详细见第6章);
x = ['afd','adagdh','eqr6tytregh','rewt','jhgfd']
x.sort(key=len)
print(x)
结果:
['afd', 'rewt', 'jhgfd', 'adagdh', 'eqr6tytregh']
参数reverse,可将其指定为一个真值(True或False),指定是否要按相反顺序排序。
x = ['afd','adagdh','eqr6tytregh','rewt','jhgfd']
x.sort(key=len,reverse=True)
print(x)
结果:
['eqr6tytregh', 'adagdh', 'jhgfd', 'rewt', 'afd']
20190805-Python基础 第二章 列表和元组(2)列表的更多相关文章
- 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
# 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...
- python 的 集合,字典,元组,列表
元组 tuple a = (1,2,3) 元组不能修改 可权嵌套列表 如 (1,2,3,[1,2,3]) 里面的列表可修改 一般不这样用 列表list a = [1,2,3] 集合set a ...
- 20190804-Python基础 第二章 列表和元组
容器,Python支持一种数据结构的基本概念(容器,基本上就是可包含其他对象的对象.) 两种主要的容器是:序列(如列表和元组)和映射(如字典) Ps: 列表与元组区别,列表可修改,元组不能. 对序列的 ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python基础学习参考(六):列表和元组
一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
- 流畅的python 读书笔记 第二章 序列构成的数组 列表推导
列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.如果你的代码里并不经常使用它们,那么很可能你错过了许多写出可读性更好且更高效的代码的机会. 2.2.1 列表推 ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
随机推荐
- shell 重定向0,1,2
.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 >a.txt 表示将错误信息输出到文件a.txt中. #将1,2输出转发给/dev/null设 ...
- spring相关知识点易错
1.spring不支持静态变量注入,即不能再static变量上面加@Resoure 要是想注入的话就用set方法注入 private static ComboPooledDataSource pool ...
- struts2方法无法映射问题:There is no Action mapped for namespace [/] and action name [m_hi] associated with context path []
使用struts的都知道,下面使用通配符定义的方式很常见,并且使用也很方便: <action name="Crud_*" class="example.Crud&q ...
- docker部署nginx+vue项目
1.vue项目打包 npm run build 会在项目生成dist文件夹,这个文件夹可以使用nginx或tomcat来发布服务 2.查找nginx基础镜像 可以通过以下网站找到符合自己的基础镜像,我 ...
- 常见的RuntimeException
一般面试中java Exception(runtimeException )是必会被问到的问题常见的异常列出四五种,是基本要求.更多的....需要注意积累了 常见的几种如下: NullPointerE ...
- Protocol Buffers学习笔记
Protocol Buffers学习笔记 1. 简介 Protocol Buffers是google发明的一种数据交换格式,独立于语言,独立于平台.与其他的数据交换格式有所不同,Protocol Bu ...
- nodejs 服务器模拟异常状态码429,以及前端vue axios捕获状态码
nodejs 服务端发送429状态: extendInfo (req, res) { res.status(429).json('Too many requests, please try again ...
- geth入门命令和miner.start返回null的问题
geth –datadir “./ethdev” –nodiscover console 2>>geth.log //geth 进入控制台 –datadir 指定链的目录 与公有链区分开 ...
- Flume-数据流监控 Ganglia
Ganglia 由 gmond.gmetad 和 gweb 三部分组成. gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上.使用 ...
- 在Vue文件中引用模块的相对路径“@“符号表示什么意思?
@ 的作用是在你引入模块时,可以使用 @ 代替 /src 目录,避免书写麻烦又易错的相对路径. import model from "@/common/model"; // 默认路 ...