Python中列表List相关操作


一、对列表List的概述

列表 List 的功能很强大,它是Python的重要数据结构之一,接下来咱们通俗易懂的聊聊和列表有关的操作。包括:列表更新、增加元素、删除元素、查找元素、列表的其它函数。

二、列表更新

列表可以通过索引获取其中的单个元素,也可以通过索引更新其中的元素,使用方法和变量赋值一样方便。

语法

list[index]

参数
index – 插入的索引位置。

案例

lis1=[1,2,3,4,5]
print(lis1)

lis1[1]='hello python'
print(lis1)

#输出结果
'''
[1, 2, 3, 4, 5]
[1, 'hello python', 3, 4, 5]
'''

案例分析
从执行结果来看,列表是可以储存不同类型的数据的,并且修改的新元素也不需要和原来的元素类型一致。但是要注意,更新列表的索引必须是已经存在的索引,不能对超出列表长度的索引更新元素。

三、增加元素

列表不能通过索引来添加元素,索引只能修改更新现有元素,如果想要添加新的元素,可以使用append、extend、insert函数。

1、append函数
append()添加的时候会把添加的元素当成一个整体进行添加,允许添加任意类型的元素。

语法

list.append(element)

参数
element – 要插入列表中的元素。

返回值
该函数没有返回值,但会在列表末尾增加一个元素。

案例

lis1=[1,2,3,4,5]
print(lis1)

lis1.append('hello python')
print(lis1)

#输出结果
'''
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 'hello python']
'''

案例分析
从执行结果来看,append直接在原来的列表末尾增加了一个新元素。但是要注意,append每次只能增加一个元素,如果想要增加多个元素,就要使用extend函数。

2、extend函数
extend()添加的时候会把添加的数据迭代进行添加,只允许添加可迭代对象数据(可迭代对象: 能用for循环进行迭代的对象就是可迭代对象, 比如:字符串,列表,元祖,字典,集合等等 )。

语法

list.append(element)

参数
element – 要插入列表中的元素。

返回值
该函数没有返回值,但会在列表末尾增加一个或多个元素。

案例

lis1=[1,2,3,4,5]
print(lis1)

print('*'*50)

lis1.append(['i like','hello python'])
print('使用append结果为:')
print(lis1)

print('*'*50)

lis2=[1,2,3,4,5]
lis2.extend(['i like','hello python'])
print('使用extend结果为:')
print(lis2)
#输出结果
'''
[1, 2, 3, 4, 5]
**************************************************
使用append结果为:
[1, 2, 3, 4, 5, ['i like', 'hello python']]
**************************************************
使用extend结果为:
[1, 2, 3, 4, 5, 'i like', 'hello python']
'''

案例分析
从执行结果来看,append和extend两种函数的作用不同,append后面无论是单个元素还是一个列表,都会把它当成一个新元素追加在原来列表的后面。而extend则会把新列表拆开后追加到原来列表的后面。
append()和extend()函数都是在列表末尾添加数据,append()支持添加所有数据,extend()只支持可迭代对象的数据。

3、insert函数
insert() 用于将指定元素插入列表的指定位置。

语法

list.insert(index, element)

参数
index – 元素element 需要插入的索引位置。
element – 要插入列表中的元素。

返回值
该函数没有返回值,但会在列表指定位置插入元素。

案例

lis1=[1,2,3,4,5]
print(lis1)

print('*'*50)

lis1.insert(2,'hello python')
print('使用insert结果为:')
print(lis1)

#输出结果
'''
[1, 2, 3, 4, 5]
**************************************************
使用insert结果为:
[1, 2, 'hello python', 3, 4, 5]
'''

案例分析
insert函数需要传递2个参数,第1个参数表示要插入的新元素的位置。第2个参数表示要插入的新元素。insert和append一样,一次只能插入一个元素。

四、删除元素

能够添加元素,自然也能删除元素。Python有以下几种对列表删除元素的方法:pop、remove、del。

1、pop函数
pop()用于移除列表中的一个元素(默认是列表最后一个),并且返回该元素的值。

语法

list.pop(index)

参数
index – 要删除元素的索引位置。如果为空,则默认为删除列表最后一个元素。

返回值
该函数有返回值,返回值为所删除的元素。

案例

lis1=[1,2,3,4,5]
print('初始列表为:',lis1)

print('*'*50)

res1=lis1.pop()
print('删除元素为:',res1)
print('使用pop结果为:',lis1)

print('-'*50)

lis2=[1,2,3,4,5]
print('初始列表为:',lis2)

print('*'*50)

res2=lis2.pop(2)
print('删除元素为:',res2)
print('使用pop结果为:',lis2)


#输出结果
'''
初始列表为: [1, 2, 3, 4, 5]
**************************************************
删除元素为: 5
使用pop结果为: [1, 2, 3, 4]
--------------------------------------------------
初始列表为: [1, 2, 3, 4, 5]
**************************************************
删除元素为: 3
使用pop结果为: [1, 2, 4, 5]
'''

案例分析
从执行结果来看,pop函数可以删除指定位置的元素,并且把这个元素作为返回值返回,如果不指定位置,则默认选择列表最后一个元素。

2、remove函数
根据元素内容来对元素进行删除,删除的是首次出现在列表中的元素

语法

list.remove(element)

参数
element-列表中要删除的元素。

返回值
该函数没有返回值。

案例

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

lis1.remove('wangwu')
print('使用remove结果为:',lis1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用remove结果为: ['zhangsan', 'lisi', 'zhaoliu', 'wangwu']
'''

案例分析
remove函数会删除查找到的第一个元素,并且没有返回值。

3、del函数
删除一个或者连续几个元素,该函数用于删除元素。

语法1

del list[index]

参数
index-要删除元素在列表中的位置。

返回值
该函数没有返回值。

语法2

del list[index1:index2]

参数
index1:index2-index1要删除元素在列表中的起始位置,index2要删除元素在列表中的结束位置。删除元素包括index1但是不包括index2。

返回值
该函数没有返回值。

语法3

del list

返回值
该函数没有返回值。

案例1

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

del lis1[1]
print('使用del结果为:',lis1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用del结果为: ['zhangsan', 'wangwu', 'zhaoliu', 'wangwu']
'''

案例2

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

del lis1[1:3]
print('使用del结果为:',lis1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用del结果为: ['zhangsan', 'zhaoliu', 'wangwu']

'''

案例3

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

del lis1
print('使用del结果为:',lis1)

#输出结果
'''
NameError: name 'lis1' is not defined. Did you mean: 'list'?
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
'''

五、查找元素

用于查找元素在列表中的索引位置。当有多个同样的元素,索引值为最开始检索到的元素的位置。

语法

list.index(element)

参数
element-要查找的元素。

返回值
该函数有返回值,返回值为第一次检索到的元素在列表中的索引位置。

案例

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

pos1=lis1.index('wangwu')
print('使用index结果为:',pos1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用index结果为: 2
'''

案例分析
从执行结果来看,index会检索元素’wangwu‘。列表中有2个’wangwu‘元素,返回值为第一次检索到’wangwu‘时的索引位置。但是要注意,如果元素不在列表中,Python解释器就会报错。

六、列表的其它函数

1、reverse函数
可以反转列表,和"[::-1]"类似,但是reverse函数修改的是原来的列表,并且没有返回值。

语法

list.reverse()

参数

返回值
该函数没有返回值。

案例

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

lis1.reverse()
print('使用reverse结果为:',lis1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用reverse结果为: ['wangwu', 'zhaoliu', 'wangwu', 'lisi', 'zhangsan']
'''

案例分析
从执行结果来看,reverse函数将列表元素进行了逆序排列。并且该函数没有返回值。

2、reversed函数
对于给定的序列(包括列表、元组、字符串以及 range(n) 区间),进行逆序排列,并且该函数可以返回一个逆序序列的迭代器(用于遍历该逆序序列)。 reversed() 函数进行逆序操作,并不会修改原来序列中元素的顺序

语法

list(reversed(list))

参数
list-要进行逆序排名的列表

返回值
该函数有返回值,返回值为逆序排列后的列表。

案例

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu']
print('初始列表为:',lis1)

print('*'*50)

res=list(reversed(lis1))
print('使用reversed结果为:',res)

print('*'*50)

print('原来的列表为:',lis1)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
**************************************************
使用reversed结果为: ['wangwu', 'zhaoliu', 'wangwu', 'lisi', 'zhangsan']
**************************************************
原来的列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu']
'''

案例分析
从执行结果来看,reversed函数有对列表进行了逆序排列,有返回值。并且,reversed函数没有对列表本身进行修改。

3、count函数
用于统计某个元素在列表中出现的次数,有返回值。

语法

list.count(element)

参数
element-要统计的元素。

返回值
该函数返回元素在列表中出现的次数。

案例

lis1=['zhangsan','lisi','wangwu','zhaoliu','wangwu','xiaoming','yagao']
print('初始列表为:',lis1)

print('*'*50)

num1=lis1.count('wangwu')
num2=lis1.count('laowang')

print('wangwu出现的次数为:',num1)
print('laowang出现的次数为:',num2)

#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu', 'xiaoming', 'yagao']
**************************************************
wangwu出现的次数为: 2
laowang出现的次数为: 0
'''

案例分析
从执行结果来看,函数count统计了所要查找元素在列表中的数量,当列表中没有要查找的元素,数量为0。并且该函数有返回值。

4、sort与sorted函数
sort跟sorted都是python自带的排序函数,两者的使用方法基本一致。
最大的区别是sort会改变原有列表,没有返回值。而sorted不会改变原有列表,并且会返回一个新列表。

语法

list.sort()
sorted(list)

返回值
sort 函数没有返回值。
sorted 函数有返回值。

案例


print('*'*50)

lis2=sorted(lis1)

print('使用sorted后的原来的列表为:',lis1)
print('使用sorted后的返回的列表为:',lis2)

print('*'*50)

lis1.sort()
print('使用sort后的列表为:',lis1)


#输出结果
'''
初始列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu', 'xiaoming', 'yagao']
**************************************************
使用sorted后的原来的列表为: ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'wangwu', 'xiaoming', 'yagao']
使用sorted后的返回的列表为: ['lisi', 'wangwu', 'wangwu', 'xiaoming', 'yagao', 'zhangsan', 'zhaoliu']
**************************************************
使用sort后的列表为: ['lisi', 'wangwu', 'wangwu', 'xiaoming', 'yagao', 'zhangsan', 'zhaoliu']
'''

案例分析
从运行结果来看,sorted和sort函数都是对列表进行了排序。其中,sort函数对原来的列表进行了修改,没有返回值。sorted函数不会修改原来的列表,并且有返回值。

猜你喜欢

转载自blog.csdn.net/weixin_44793743/article/details/126676161