列表的基本操作

列表(list)是包含0个或多个元素的有序序列,属于序列类型。列表的长度都是可变的,可自由对列表中的元素进行增加、删除或替换。列表没有长度限制,元素类型可以不同,可以同时包含整数、实数、字符串等基本类型,也可以是列表、元组、字典、集合以及其他自定义类型的对象,使用非常灵活。

一、列表的创建

创建列表只需将逗号分隔的不同元素使用方括号括起来即可:

>>>animal = ['element','monkey','snake','tiger']	#创建列表
>>>animal	#打印animal
['element','monkey','snake','tiger']

tips:列表的索引从0开始。

二、增加元素

列表由3种增加元素的方法:append()、extend()、insert()

append()

使用append()方法可在列表末尾添加新的元素,语法格式为:list.append(obj),其中,list表示列表,obj表示添加到列表末尾的对象。

>>>add_list =[0,1,2,3]	# 创建列表add_list并赋值
>>>add_list.append(4)	# 使用append()为add_list末尾添加元素4
>>>add_list
[0,1,2,3,4]
extend()

使用extend()方法可在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),语法格式为:list.extend(seq)。其中,list表示列表,seq表示添加到列表中的元素列表。

list_1 = [1,2,3]
list_2 = [4,5,6]
list_3 = [7,8,9]
list_1.append(list_2)	# 将list_2看作一个对象,整体打包添加到list_1对象中
print(list_1)
list_2.extend(list_3)	# 将list_3看作一个序列,将这个序列和list_2序列合并
print(list_2)

运行结果:

[1,2,3,[4,5,6]]
[4,5,6,7,8,9]

这也是append和extend方法的区别所在。

insert()

使用insert()方法可将指定对象插入到列表的指定位置。语法格式为:list.insert(index,obj),其中list表示列表,index表示对象需要插入的索引位置,obj表示要插入列表中的对象。

>>>number = [1,2,4,5]
>>>number.insert(2,3)	# 使用insert()方法将元素3添加到列表索引为2的位置中
>>>number
[1,2,3,4,5]

三、查找元素与计数

查找元素

所谓在列表中查找元素,就是查看指定的元素是否存在列表中。列表提供index()方法用于返回指定元素在列表中首次出现的位置,如果该元素不在列表中则抛出异常。语法格式为:

list.index(obj)

其中,list表示列表,obj表示要查找的对象。

>>>list = ['tiger','rabbit','cat','dog']
>>>list.index('tiger')
0
计数

要想知道指定元素在列表中出现的次数,可以使用count()方法进行统计,其语法格式为:list.count(obj)其中,list表示列表,obj表示列表中要统计的对象。

>>> x=[1,2,1,2,1,2,1]
>>> x.count(1)	# 使用count()方法统计1在变量x中的出现次数。
4

四、删除元素

在列表中删除元素的常用方法有3种:del命令、pop()方法和remove()方法。

del命令

del命令可根据索引/分片的方式删除列表中的元素。

>>> number = [1,2,3,4,5]
>>> del number[1:3]	# 使用del命令删除number中索引从1到3(不包括3)的元素
>>> number
[1, 4, 5]
pop()方法

pop()方法用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。

语法格式为:list.pop([obj])

其中,list表示列表,obj为可选参数,表示移除列表元素的索引值,默认为-1,删除最后一个列表值。

>>> number = [1,2,3,4,5]
>>> number.pop()	# 使用pop()方法删除number中的元素
5
>>> number
[1, 2, 3, 4]
>>> number.pop(0)	# 使用pop()方法删除number中索引为0的元素
1
>>> number
[2, 3, 4]
remove()方法

remove()方法用于移除列表中某个值的第一个匹配项。语法格式为:list.remove(obj)。其中,list表示列表,obj表示列表中要移除的对象。

>>> number = [1,2,3,1,2,1,4,1]
>>> number.remove(1)	# 使用remove()方法移除number中第一次出现1的元素。
>>> number
[2, 3, 1, 2, 1, 4, 1]

五、分片赋值

分片赋值就是以分片的形式给序列赋值,可以一次为多个元素赋值。

>>> x=[1,2,3,4]
>>> x
[1, 2, 3, 4]
>>> x[2:]=[5,6,7]	# 替换变量x索引从2开始到最后的元素
>>> x
[1, 2, 5, 6, 7]

分片赋值还可以在不替换任何原有元素的情况下插入新的元素。

>>> x=[1,7]
>>> x[1:1]=[2,3,4,5,6]	# 在变量x中索引1的位置插入列表[2,3,4,5,6]
>>> x
[1, 2, 3, 4, 5, 6, 7]

分片赋值也可以用来删除元素。

>>> x=[1,2,3,4,5,6,7]
>>> x[1:6]=[]	# 用空列表将x中索引1到索引6之间的元素替换
>>> x
[1, 7]

六、列表排序

reverse()方法

reverse()方法用于将列表中元素反向存放。语法格式为:list.reverse()其中,list表示列表,该方法没有参数,没有返回值。

>>> x=[1,2,3,4]
>>> x.reverse()	# 使用reverse()方法将变量x中的元素反向存放
>>> x
[4, 3, 2, 1]
sort()方法

sort()方法用于对原列表进行排序(默认为升序排序),排序后的新列表会覆盖原列表。

语法格式为:

list.sort([key=None][,reverse=False])

其中,list表示列表;key为可选参数,如果指定了该参数,会使用该参数的方法进行排序;reverse为可选参数,表示是否反向排序,默认为False。

>>> x=['a','abc','ab','abcd']
>>> x.sort(key=len,reverse=True)	# 使用sort()方法对变量x中元素进行长度逆序排序
>>> x
['abcd', 'abc', 'ab', 'a']
sorted()函数

我们也可以使用内置函数sorted()对列表进行排序。与sort()方法不同,内置函数sorted()返回新列表,并不对原列表进行任何修改。

语法格式为:sorted(iterable[,key=None][,reverse=False])

其中,iterable表示可迭代对象,在这里就是列表名;参数key和reverse的用法和sort()方法中的相同。

>>> x=[1,5,2,3,4]
>>> y = sorted(x)	# 将x中的元素升序排列后赋值给变量y
>>> x
[1, 5, 2, 3, 4]
>>> y
[1, 2, 3, 4, 5]
posted @ 2021-10-17 11:52  Cara_Smith  阅读(715)  评论(0编辑  收藏  举报