之前学习 Python 的数据类型 的时候,简单学过 Python 的列表。列表在 Python 中是非常有用的,后面经常会用得到。
另外列表的某些方法跟 Python 字符串运算 的非常像,学会了字符串的运算,列表学习就非常简单了。
下面集中把 Python 列表 相关的知识学习一下。
列表 list
列表是一组不同数值和字符串组成的数据表,里面可以存储数字型和字符串等数据。
Python 的列表是用英文中括号 [] 来生成的,中间的元素用英文逗号 , 来分割。(下面是之前举过的例子):
a = [1, 2.0, 'hello', 5 + 1.0]print(a)print(type(a))
运行结果是:
[1, 2.0, 'hello', 6.0]
获取列表中的部分元素
方法跟获取字符串中的部分字符类似,使用索引值来获取列表中的元素,同样索引值是从0开始的。
获取列表某个元素
使用 name[n] 来获取,其中name是列表名,n是索引值。
# 获取某个位置的元素# print(name[n])a = [1,2,3,'a','b','c','d']print(a[3])print(a[0])
其中列表 a 里索引值 3 的是字符 a,索引值 0 的是数字 1.
截取从 n 到 m 前一位索引位置的元素
使用的方法是 name[n:m] 截取的是列表中从 索引值 n 到 索引值 m 前一位 的元素,不包含 索引值 m 的元素。
# 获取从第n个开始到m之前索引位置的元素,不包含m# print(name[n:m]a = [1,2,3,'a','b','c','d']print(a[1:4])
也就是获取索引值 1 到 索引值 3 的元素。
获取从n到m中间,步进为 s 的元素
跟字符串的方法是一样的:name[n:m:s]
# 获取从第n个开始到m之前,步进为s的元素# print(name[n:m:s]a = [1,2,3,'a','b','c','d']print(a[1:6:2])
列表中索引值 1 到 6之前的元素分别是:2, 3, 'a', 'b', 'c', 'd',步进是2,也就是获取 2, 'a', 'c' 元素:
对列表中的元素进行倒序
跟字符串中一样,如果索引范围中冒号 : 前面没有数字,默认从索引值 0 开始,冒号后面没有数字的话,默认到列表结尾。
所以倒序可以用这个方法:name[::-1]
# 列表倒序,其中:前面没有数字的话,默认从0开始,后面没有数字的话,默认到列表结尾# print(name[::-1])a = [1, 2,3,'a','b','c','d']print(a[::-1])
运行结果如图,一看就明白了:
注意,倒序并不会改变原来列表中元素的顺序,如果想要保存生成的新的倒序的列表,可以赋值给一个新的变量,也可以赋值给原来的变量,这样原来的列表就改变了。
比如,如果想要更改原来的列表成倒序,使用下面的代码:
a = [1, 2,3,'a','b','c','d']print(a[::-1])print(a)a = a[::-1]print(a)
运行结果如下:
字符串转换成字符组成的列表
我们前面看到列表跟字符串特性非常相近,那么我们可以使用 list() 命令把一个字符串变成由字符组成的列表。
方法是 list('str')
a = list('Python')print(a)
会变成列表['P', 'y', 't', 'h', 'o', 'n']
列表分片赋值
我们可以对列表中的部分元素进行修改。
替换列表某部分的元素
a = list('Python')a[2:] = [1,2,3]# 把索引值 2 到结尾的元素替换成 1, 2, 3 几个元素 print(a)
变成了 p, y, 1, 2, 3 组成的列表
在列表某个位置插入元素
a = [1,2,6,7]a[2:2] = [3,4,5]# 在索引 2 前面插入 3, 4, 5 这三个元素print(a)
列表 a 在索引 2 之前插入列表 [3, 4, 5] 之后变成[1, 2, 3, 4, 5, 6, 7]
删除列表中某些位置的元素
a = [1,2,3,4,5,6,7]a[1:4] = []# 删除索引 1 到 4 之前的元素print(a)
删除索引 1 到 索引 4 之前的元素,列表会变成[
1
,
5
,
6
,
7
]
向列表添加元素
使用下面的方法添加元素的时候,直接作用于原列表。
a = [1,2,3,'a','b','c']# 向列表结尾中添加一个元素:a.append("world")print(a)# 向列表索引 n 前面添加一个元素a.insert(1,4)print(a)
删除列表一个元素
同样使用下面方法删除元素的时候,直接作用于原列表。
a = [1,2,3,'a','b','c']# 删除最后一个元素a.pop()print(a)# 删除索引值 n 的元素a.pop(1)print(a)
我们使用 pop 方法删除指定元素的时候,可以把删除的元素赋值给新的变量
a = [1,2,3,'a','b','c']x =a.pop(0)# 删除索引 0 的元素,赋值给 xprint(a)print(x)
在列表中查找元素
判断变量 x 是否在列表 l 中:
x
in
l
结果是布尔型数据,True 或者 False.
x = 'P'y = 'a'l = list('Python')print(x in l)print(y in l)
列表中有 'P',没有 'a',所以第一个是 True,第二个是 False.
下面的就大家可以自己演示一下:
统计变量 x 在列表 a 中出现了几次
a.count(x)
查找变量 x 在列表 a 第一次出现的位置
a.index(x)
列表 a 的长度
len(a)
列表合并
列表 a 和 列表 b 合并成一个新的列表
a = [1,2,3]b = ['a','b','c']c = a + b# 列表 a 跟 列表 b 合并,并赋值给 列表 cprint(c)
列表 b 合并到 列表 a 中,相当于 a = a + b
a = [1,2,3]b = ['a','b','c']a.extend(b)# 列表 b 合并到 列表 aprint(a)
想要了解更详细的 Python 知识,欢迎关注微信公众号 逍遥乱弹,然后点击菜单 Python 就可以查看我所有的 Python 学习日志了,后面会持续更新的。
吐槽时间:说实话,自己学习的时候记笔记,跟把笔记写出来分享给大家完全不一样,自己记笔记的时候,自己懂就好了。但是分享给别人,就不能预设其他人跟你一样的思维,所以需要把前因后果写清楚,其实还是不容易的。
这篇分享在之前已经做好笔记的基础上,重新用了2个多小时才重新写完,包括案例的运行等。