[数据1, 数据2, 数据3, 数据4......]
列表可以一次性存储多个数据,且可以为不同数据类型。
列表里想装啥就装啥,即:他可以包含不同种类、任意类型的对象,甚至可以嵌套列表,专业点的词儿叫:异构性;
我们看一个例子:
L1 = [1, 2, 3, 4, 5] L2 = [1, 'spam', [2.3, 4]] L3 = []
看这三个列表的初始化过程,异构性就搞清楚了,特别是L2列表,它同时包含了好几种不同的数据类型,甚至还嵌套了列表。
列表里装的元素都是有顺序的,可以按照位置序号获取单个元素,也可以用分片的方法来进行多个连续元素的获取,来个专业词汇,叫做:有序性。
按位置序号索引,例如L1[2]这种方式来访问列表中的元素只是最简单的一种,我来重点来说说分片操作这个独特用法,先看看这个例子:
L = [1,2,3,4,5,6,7,8] print(L[1:3]) [2, 3]
我们从列表L中从左往右截取了一个片段。关于截取片段左右边界与索引值的对应关系,我们只需记住这么一个口诀“左闭右开”就OK了:
分片索引中第一个参数1表示左侧开始的索引1(从0开始计数),因此起始的元素就是整形数2,第二个参数3表示在右侧终止的索引值为3,即整形数4,但要记住他是不包含在截取的序列中的。
列表的大小和内容可以随意改变,在插入、删除、修改列表元素时,不需要建立一份新的列表拷贝,而是在原来的内存地址上直接修改列表对象。这个叫“本地可修改”
首先看增加新元素的三个使用场景:
L = [1,2,3,4] L.append(5) print(L) [1, 2, 3, 4, 5] L = [1,2,3,4] L.insert(1,10) print(L) [1, 10, 2, 3, 4] L = [1,2,3,4] L.extend([11,22,33]) print(L) [1, 2, 3, 4, 11, 22, 33]
这三个用法有些不同,append方法只能在尾部加入;insert方法可在任意位置加入,比如上面例子,我们在列表的索引位置为1的地方加入元素10,如果指定的索引值大于序列的总长度,则自动加到末尾;extend方法则可以在尾部一次性加入多个元素
增加指定数据到列表中。
列表结尾追加数据,语法如下
列表序列.append(数据)
示例
name_list = ['Tom', 'Lily', 'Rose'] name_list.append('xiaoming') # 结果:['Tom', 'Lily', 'Rose', 'xiaoming'] print(name_list)
列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。
如果append()追加的数据是一个序列,则追加整个序列到列表,注意和下面extend区分!
name_list = ['Tom', 'Lily', 'Rose'] name_list.append(['xiaoming', 'xiaohong']) # 结果:['Tom', 'Lily', 'Rose', ['xiaoming', 'xiaohong']] print(name_list)
列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。语法如下:
列表序列.extend(数据)
单个数据
name_list = ['Tom', 'Lily', 'Rose'] name_list.extend('xiaoming') # 结果:['Tom', 'Lily', 'Rose', 'x', 'i', 'a', 'o', 'm', 'i', 'n', 'g'] print(name_list)
序列数据
name_list = ['Tom', 'Lily', 'Rose'] name_list.extend(['xiaoming', 'xiaohong']) # 结果:['Tom', 'Lily', 'Rose', 'xiaoming', 'xiaohong'] print(name_list)
指定位置新增数据。语法如下
列表序列.insert(位置下标, 数据)
快速体验
name_list = ['Tom', 'Lily', 'Rose'] name_list.insert(1, 'xiaoming') # 结果:['Tom', 'xiaoming', 'Lily', 'Rose'] print(name_list)
del 目标
删除列表
name_list = ['Tom', 'Lily', 'Rose'] # 结果:报错提示:name 'name_list' is not defined del name_list print(name_list)
删除指定数据
name_list = ['Tom', 'Lily', 'Rose'] del name_list[0] # 结果:['Lily', 'Rose'] print(name_list)
语法
列表序列.pop(下标)
快速体验
name_list = ['Tom', 'Lily', 'Rose'] del_name = name_list.pop(1) # 结果:Lily print(del_name) # 结果:['Tom', 'Rose'] print(name_list)
移除列表中某个数据的第一个匹配项。
语法
列表序列.remove(数据)
快速体验
name_list = ['Tom', 'Lily', 'Rose'] name_list.remove('Rose') # 结果:['Tom', 'Lily'] print(name_list)
清空列表
name_list = ['Tom', 'Lily', 'Rose'] name_list.clear() print(name_list) # 结果: []
name_list = ['Tom', 'Lily', 'Rose'] name_list[0] = 'aaa' # 结果:['aaa', 'Lily', 'Rose'] print(name_list)
num_list = [1, 5, 2, 3, 6, 8] num_list.reverse() # 结果:[8, 6, 3, 2, 5, 1] print(num_list)
语法
列表序列.sort( key=None, reverse=False)
注意:reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)
快速体验
num_list = [1, 5, 2, 3, 6, 8] num_list.sort() # 结果:[1, 2, 3, 5, 6, 8] print(num_list)
name_list = ['Tom', 'Lily', 'Rose'] print(name_list[0]) # Tom print(name_list[1]) # Lily print(name_list[2]) # Rose
index():返回指定数据所在位置的下标 。
语法
列表序列.index(数据, 开始位置下标, 结束位置下标)
快速体验
name_list = ['Tom', 'Lily', 'Rose'] print(name_list.index('Lily', 0, 2)) # 1
注意:如果查找的数据不存在则报错。
count():统计指定数据在当前列表中出现的次数。
name_list = ['Tom', 'Lily', 'Rose'] print(name_list.count('Lily')) # 1
len():访问列表长度,即列表中数据的个数。
name_list = ['Tom', 'Lily', 'Rose'] print(len(name_list)) # 3
函数:copy()
name_list = ['Tom', 'Lily', 'Rose'] name_li2 = name_list.copy() # 结果:['Tom', 'Lily', 'Rose'] print(name_li2)
以上便是本篇文章全部内容,如果看到这里对您有些许帮助,希望可以得到您的三连支持!
相关链接:
Python中列表和字典有什么区别,分别适用于什么场景?