Python列表的常用方法
1.append方法:在列表末尾添加一个元素
语法:
list.append(elmnt)
参数介绍:
append()
方法只接受一个参数,即要添加到目标列表中的元素。这个参数可以是任何类型的数据,包括字符串、数字、布尔值、列表、元组、字典、集合等。
代码示例:
numbers = [1, 2, 3, 4, 5]
# 添加一个字符串到列表末尾
numbers.append('six')
print(numbers)
# 添加一个列表到列表末尾
numbers.append([7, 8, 9])
print(numbers)
# 添加一个元组到列表末尾
numbers.append((10, 11, 12))
print(numbers)
# 添加一个字典到列表末尾
numbers.append({'name': 'Alice', 'age': 20})
print(numbers)
2.clear方法:清空列表中的所有元素
list1 = ['apple', 'banana', 'cherry']
list1.clear()
print(list1) # []
3.copy方法:复制列表
函数功能:
返回浅拷贝列表
语法:
list.copy()
代码示例:
list1 = ['apple', 'banana', 'cherry']
list2 = list1.copy()
print(list2) # ['apple', 'banana', 'cherry']
注意:
copy()
方法只会复制列表对象的顶层成员,即只会复制列表中的元素,而不会递归的复制包含在列表对象中的所有子对象。如果列表元素是嵌套的数据结构,例如列表包含字典,那么需要使用更深层次的拷贝方法,例如深拷贝(deep copy)。
4.count方法:返回列表中指定元素的个数
函数功能:
计算某个元素在列表中出现的次数。
语法:
list.count(value)
参数介绍:
count()
方法接受一个参数,即要查找的元素。可以是任何类型的值,包括字符串、数字、布尔值、列表、元组、字典、集合等。
代码示例:
numbers = [1, 5, 3, 7, 5, 3, 5, 10]
# 查找数字5在列表中出现的次数
count = numbers.count(5)
print("数字5在列表中出现了%d次" % count)
输出:
数字5在列表中出现了3次
5.extend方法:将一个可迭代对象的元素添加到列表末尾
函数功能:
在一个列表的末尾追加另一个列表中的所有元素。
语法:
list1.extend(list2)
其中,list1
是目标列表,list2
是要添加到目标列表list1
末尾的列表。
参数介绍:
extend()
方法只有一个参数,即要添加到目标列表末尾的列表,这个参数必须是一个可迭代对象,例如列表、元组、字典、集合等。
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
# 将list2中的元素添加到list1的末尾
list1.extend(list2)
print(list1)
输出:
[1, 2, 3, 'a', 'b', 'c']
注意:
extend()
方法只会将另一个列表中的元素追加到目标列表的末尾,而不是创建一个新的列表。同时,如果目标列表和源列表有相同的元素,extend方法也会把源列表中的元素全部追加到目标列表中,这些元素的顺序与源列表中的顺序一致。
6.index方法:返回列表中指定元素的索引值
函数功能:
返回列表中第一个匹配给定元素的位置。
语法:
list.index(value[, start[, end]])
其中,list
是要查找元素的目标列表,value
是要查找的元素,start
和end
是可选参数,表示查找范围的起始位置(默认为列表开始位置)和终止位置(默认为列表结束位置)。
代码示例:
fruits = ['apple', 'banana', 'cherry', 'orange']
# 查找orange元素在列表中第一次出现的位置
index = fruits.index('orange')
print("orange在列表中第一次出现的位置是:", index)
输出:
orange在列表中第一次出现的位置是: 3
注意:
如果目标元素不存在于列表中,将会引发ValueError
异常。可以在index()
方法中指定可选参数来限制搜索范围。如果指定范围之外的位置,index()
方法将返回ValueError
异常。
7.insert方法:在指定索引位置插入元素
函数功能:
将元素插入到指定位置,其他元素向后移动。
语法:
list.insert(index, value)
其中,list
是目标列表,index
表示要插入元素的位置,value
表示要插入的元素。
参数介绍:
index
:要插入元素的位置。必须是一个整数。
value
:要插入的元素。可以是任何数据类型的值,包括字符串、数字、布尔值、列表、元组、字典、集合等。
代码示例:
fruits = ['apple', 'banana', 'cherry']
# 在索引为1的位置插入新元素
fruits.insert(1, "orange")
print(fruits)
输出:
['apple', 'orange', 'banana', 'cherry']
注意:
如果指定的索引值大于列表中的元素个数,那么元素将被追加到列表的末尾。另外,插入操作是不会替换掉对应位置的原有元素的,而是将其后移一个位置。
8.pop方法:删除指定索引位置的元素,并返回该元素
函数功能:
用于删除列表中指定位置的元素,并返回删除的元素。
语法:
list.pop([index])
其中,list
是目标列表,index
是元素所在的位置,默认为-1,即从列表末尾删除元素。
参数介绍:
pop()
方法只有一个参数,即要删除元素的位置 index,如果未提供位置,则默认删除列表最后一个元素。
代码示例:
list1 = ['apple', 'banana', 'cherry']
print(list1.pop(1)) # banana
print(list1) # ['apple', 'cherry']
9.remove方法:删除列表中指定元素的第一个匹配值
函数功能:
用于删除列表中第一个匹配给定元素的值。
语法:
list.remove(value)
其中,list
是目标列表,value
是要删除的元素。
参数介绍:
remove()
方法只有一个参数,即要删除的元素 value
。 如果列表中不存在该元素,则抛出 ValueError
异常。
代码示例:
fruits = ['apple', 'banana', 'cherry']
# 删除列表中的元素'banana'
fruits.remove('banana')
print("删除后的列表:", fruits)
输出:
删除后的列表: ['apple', 'cherry']
10.reverse方法:将列表中的元素逆序排列
函数功能:
用于将列表中的元素反向排列。
语法:
list.reverse()
代码示例:
fruits = ['apple', 'banana', 'cherry', 'orange']
# 反转水果列表
fruits.reverse()
print(fruits)
注意:reverse()
方法在原列表上进行修改,不会返回修改后的列表。
11.sort方法:对列表中的元素进行排序,可接收关键字参数
函数功能:
用于对列表进行排序(即按照一定的规则重新排列列表中的元素)。
语法:
list.sort(key=None, reverse=False)
其中,list
是目标列表,key
是排序规则函数,翻转默认为 False ,表示升序。
参数介绍:
sort()
方法有两个可选参数:
- key
:用于指定按照哪个函数进行排序,例如按照字符串长度排序、按照字符串中字符的 ASCII 码大小排序等等。默认为 None,表示按照列表元素的原有顺序进行排序。
- reverse
:表示要进行降序排序,可以设置为 True,否则就是默认的升序排序,设置为 False。
代码示例:
1.直接元素之间比大小,不指定key
list1 = [3, 2, 1, 4, 5]
list1.sort()
print(list1) # [1, 2, 3, 4, 5]
list2 = ['apple', 'banana', 'cherry']
list2.sort(reverse=True)
print(list2) # ['cherry', 'banana', 'apple']
2,列表中元素为字典时,按照字典中某个值比大小
students = [
{"name": "Tom", "age": 20, "score": 85},
{"name": "Jerry", "age": 18, "score": 90},
{"name": "Marry", "age": 19, "score": 92}
]
# 按照成绩排序
students.sort(key=lambda x: x['score'])
print(students)
输出:
[{'name': 'Tom', 'age': 20, 'score': 85},
{'name': 'Jerry', 'age': 18, 'score': 90},
{'name': 'Marry', 'age': 19, 'score': 92}]
3.按照列表嵌套的某个值进行排序
students = [
["Tom", 20, 85],
["Jerry", 18, 90],
["Marry", 19, 92]
]
# 按照成绩排序
students.sort(key=lambda x: x[2])
print(students)
输出:
[['Tom', 20, 85], ['Jerry', 18, 90], ['Marry', 19, 92]]
4.按照判断条件筛选进行排序
students = [
{"name": "Tom", "age": 20, "score": 85},
{"name": "Jerry", "age": 18, "score": 90},
{"name": "Marry", "age": 19, "score": 92},
{"name": "Anna", "age": 21, "score": 90},
{"name": "David", "age": 19, "score": 82}
]
# 按照年龄排序,年龄相同按成绩排序
students.sort(key=lambda x: (x['age'], -x['score']))
print(students)
输出:
[{'name': 'Jerry', 'age': 18, 'score': 90},
{'name': 'David', 'age': 19, 'score': 82},
{'name': 'Marry', 'age': 19, 'score': 92},
{'name': 'Tom', 'age': 20, 'score': 85},
{'name': 'Anna', 'age': 21, 'score': 90}]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)