关键词:列表方法、append、sort、内置函数、方法区别
概要:本文介绍了 Python 列表中常用的 11 个方法,如 append、insert、remove、sort、pop 等,详细说明了它们的概念、关键点、注意点及使用示例。这些方法用于对列表进行增删改查等操作,是数据处理的重要工具。文章还对比了 Python 中的内置函数和方法的区别,指出内置函数是解释器直接提供的通用函数,如 len、print、range;而方法是定义在类中的函数,需通过对象调用,与特定数据类型相关,例如字符串或列表的方法。二者在定义来源、调用方式、作用对象和参数传递上存在差异。掌握这些内容有助于更高效地编写 Python 代码,提升数据操作能力。
以下是 Python 列表中 append 、 insert 、 remove 、 sort 等常用方法的概念、关键点、注意点以及举例说明:
1、append() 方法
(1)概念:
append() 方法用于在列表的末尾添加一个元素。它会直接修改原列表,不会返回新的列表。
(2)关键点:
● 只接受一个参数,该参数可以是任意数据类型,如整数、字符串、列表等。
● 添加元素后,列表的长度会增加 1。
(3)注意点:
此方法是在原列表上进行操作,没有返回值(返回None ),不要将其赋值给变量,否则会得到None 。
(4)举例:
Python脚本
# 创建一个包含整数 1、2、3 的列表,并将其赋值给变量 my_list
my_list = [1, 2, 3]
# 使用列表的 append 方法,在列表 my_list 的末尾添加一个元素 4
my_list.append(4)
# 打印当前的列表 my_list,此时列表包含元素 1、2、3、4
print(my_list) # 输出 [1, 2, 3, 4]
# 使用列表的 append 方法,在列表 my_list 的末尾添加一个新的列表 [5, 6]
# 这会使列表 my_list 包含一个子列表
my_list.append([5, 6])
# 打印当前的列表 my_list,此时列表包含元素 1、2、3、4 和子列表 [5, 6]
print(my_list) # 输出 [1, 2, 3, 4, [5, 6]]
2、insert() 方法
(1)概念:
insert() 方法用于在列表的指定位置插入一个元素。它会改变原列表,插入位置之后的元素会依次向后移动。
(2)关键点:
● 接受两个参数,第一个参数是要插入的位置(索引,从 0 开始计数),第二个参数是要插入的元素。
● 如果指定的索引超出了列表的长度,元素会被添加到列表的末尾,相当于 append() 方法。
(3)注意点:
插入操作会改变列表中元素的索引位置,后续对列表的操作要注意索引的变化。
(4)举例:
Python脚本
# 定义一个名为 my_list 的列表,初始元素为 1、2、3
my_list = [1, 2, 3]
# 使用 insert 方法在列表 my_list 的索引为 1 的位置插入元素 1.5
# 原本索引 1 及之后的元素会依次后移
my_list.insert(1, 1.5)
# 打印插入元素后的列表 my_list
print(my_list)
# 输出 [1, 1.5, 2, 3] # 使用 insert 方法尝试在列表 my_list 的索引为 10 的位置插入元素 4
# 若指定的索引超出列表的长度,元素会被插入到列表的末尾
my_list.insert(10, 4)
# 打印再次插入元素后的列表 my_list
print(my_list) # 输出 [1, 1.5, 2, 3, 4]
3、remove() 方法
(1)概念:
remove() 方法用于从列表中删除指定的元素。它会直接修改原列表,找到第一个匹配的元素并删除。
(2)关键点:
● 只接受一个参数,即要删除的元素的值,而不是索引。
● 如果列表中不存在要删除的元素,会抛出 ValueError 异常。
(3)注意点:
当列表中有多个相同元素时,只会删除第一个匹配的元素。如果要删除所有匹配元素,需要使用循环等方式。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,列表中包含元素 1、2、2 和 3
my_list = [1, 2, 2, 3]
# 使用列表的 remove 方法,从列表 my_list 中移除第一个值为 2 的元素
# 如果列表中有多个值为 2 的元素,只会移除第一个遇到的 2
my_list.remove(2)
# 打印移除元素后的列表 my_list
print(my_list) # 输出 [1, 2, 3]
# 以下是一行注释掉的代码,
# 若取消注释并执行my_list.remove(4)
# 这行代码会尝试从列表 my_list 中移除值为 4 的元素
# 由于列表中并不存在值为 4 的元素,会抛出 ValueError 异常,异常信息为 "list.remove(x): x not in list"
# my_list.remove(4)
# 会抛出 ValueError: list.remove(x): x not in list
4、 sort() 方法
(1)概念:
sort() 方法用于对列表中的元素进行排序。默认情况下,按升序排列,也可以通过参数指定降序或其他排序规则。它会直接修改原列表。
(2)关键点:
● 可以接受两个可选参数, key 和 reverse 。 key 是一个函数,用于指定排序的依据; reverse 是一个布尔值, True 表示降序排列, False 表示升序排列(默认值)。
● 列表中的元素必须是可比较的,否则会抛出 TypeError 异常(例如,不能同时包含字符串和数字进行排序)。
(3)注意点:
此方法是在原列表上进行排序,没有返回值(返回 None ),不要将其赋值给变量。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,包含多个整数元素
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
# 调用列表的 sort 方法对 my_list 进行排序,默认是升序排序
# 排序会直接修改原列表,而不是返回一个新的排序后的列表
my_list.sort()
# 打印排序后的列表
print(my_list) # 输出 [1, 1, 2, 3, 4, 5, 6, 9]
# 再次调用 sort 方法,传入 reverse=True 参数,对列表进行降序排序
# 同样会直接修改原列表
my_list.sort(reverse=True)
# 打印降序排序后的列表
print(my_list) # 输出 [9, 6, 5, 4, 3, 2, 1, 1]
# 重新赋值 my_list 为一个包含正负数的新列表
my_list = [-3, 1, -4, 1, -5, 9, 2, -6]
# 调用 sort 方法,并使用 key=abs 参数
# 这意味着排序时会根据元素的绝对值大小来进行排序,而不是元素本身的值
# 排序完成后原列表会被修改
my_list.sort(key=abs)
# 打印根据绝对值排序后的列表
print(my_list) # 输出 [1, 1, 2, -3, -4, -5, -6, 9]
5、pop() 方法
(1)概念:
pop() 方法用于从列表中删除并返回指定位置的元素。如果不指定位置,默认删除并返回列表的最后一个元素。
(2)关键点:
● 接受一个可选参数,即要删除元素的索引(从 0 开始计数)。
● 会改变原列表,列表的长度会减 1。
(3)注意点:
如果指定的索引超出了列表的范围,会抛出 IndexError 异常。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,其中包含整数 1 到 5
my_list = [1, 2, 3, 4, 5]
# 使用列表的 pop 方法,移除并返回指定索引位置的元素
# 这里指定索引为 2,也就是列表中的第 3 个元素(索引从 0 开始)
# 移除该元素后,原列表中该位置之后的元素会依次向前移动
element = my_list.pop(2)
# 打印被移除的元素
print(element) # 输出 3
# 打印移除元素后的列表
print(my_list) # 输出 [1, 2, 4, 5]
# 再次使用列表的 pop 方法,但不指定索引
# 当不指定索引时,pop 方法会默认移除并返回列表的最后一个元素
last_element = my_list.pop()
# 打印被移除的最后一个元素
print(last_element) # 输出 5
# 打印再次移除元素后的列表
print(my_list) # 输出 [1, 2, 4]
6、count() 方法
(1)概念:
count() 方法用于统计列表中指定元素的个数。
(2)关键点:
● 接受一个参数,即要统计的元素。
● 返回指定元素在列表中出现的次数。
(3)注意点:
该方法不会修改原列表,只是进行计数操作。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,列表中包含元素 1、2、2、3 和 2
_list = [1, 2, 2, 3, 2]
# 调用列表的 count 方法,该方法用于统计指定元素在列表中出现的次数
# 这里指定要统计的元素是 2,将统计结果存储在变量 count_result 中
count_result = my_list.count(2)
# 打印元素 2 在列表 my_list 中出现的次数
print(count_result) # 输出 3
7、index() 方法
(1)概念:
index() 方法用于返回列表中指定元素首次出现的索引位置。
(2)关键点:
● 接受一个参数,即要查找的元素。
● 如果元素存在于列表中,返回其索引;如果不存在,会抛出 ValueError 异常。
(3)注意点:
当列表中有多个相同元素时,只返回第一个元素的索引。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,该列表包含整数元素 1、2、2 和 3
my_list = [1, 2, 2, 3]
# 调用列表的 index 方法,该方法用于查找指定元素在列表中首次出现的索引位置
# 这里指定要查找的元素是 2,将查找到的索引结果存储在变量 index_result 中
index_result = my_list.index(2)
# 打印元素 2 在列表 my_list 中首次出现的索引位置
print(index_result) # 输出 1
# my_list.index(4) # 会抛出 ValueError: 4 is not in list
这些方法是 Python 列表操作中非常常用的,熟练掌握它们可以更高效地处理和操作列表数据。
以下再为你详细介绍 Python 列表除了前面提到的一些方法之外,还有其他常用方法,包括 extend 、 clear 、 copy 等,下面会解释它们的概念、关键点、注意点并举例说明:
8、 extend() 方法
(1)概念:
extend() 方法用于将一个可迭代对象(如列表、元组、字符串等)的所有元素添加到原列表的末尾,从而扩展原列表。它会直接修改原列表,不会返回新的列表。
(2)关键点:
● 接受一个可迭代对象作为参数,将该可迭代对象的元素逐一添加到原列表。
● 与append() 方法不同,append() 是将传入的参数作为一个整体添加到列表末尾,而 extend() 是将可迭代对象的元素拆分后添加。
(3)注意点:
传入的参数必须是可迭代对象,否则会抛出 TypeError 异常。
(4)举例:
Python脚本
# 创建一个名为 list1 的列表,其中包含元素 1、2、3
list1 = [1, 2, 3]
# 创建一个名为 list2 的列表,其中包含元素 4、5、6
list2 = [4, 5, 6]
# 使用 extend 方法将 list2 中的所有元素添加到 list1 的末尾
# 注意:extend 方法会直接修改原列表 list1,而不是创建一个新列表
list1.extend(list2)
# 打印扩展后的 list1,此时 list1 包含元素 1、2、3、4、5、6
print(list1) # 输出 [1, 2, 3, 4, 5, 6]
# 使用 extend 方法将一个元组 (7, 8) 中的元素添加到 list1 的末尾
# 元组中的每个元素会被依次添加到 list1 中
list1.extend((7, 8))
# 打印再次扩展后的 list1,此时 list1 包含元素 1、2、3、4、5、6、7、8
print(list1) # 输出 [1, 2, 3, 4, 5, 6, 7, 8]
# 使用 extend 方法将字符串 "abc" 中的每个字符作为一个元素添加到 list1 的末尾
# 因为字符串是可迭代对象,extend 会将其拆分为单个字符添加
list1.extend("abc")
# 打印最后扩展后的 list1,此时 list1 包含元素 1、2、3、4、5、6、7、8、'a'、'b'、'c'
print(list1) # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b', 'c']
9、clear() 方法
(1)概念:
clear() 方法用于清空列表中的所有元素,使列表变为空列表。它会直接修改原列表。
(2)关键点:
该方法没有参数,执行后列表的长度变为 0。
(3)注意点:
此操作不可逆,一旦执行 clear() 方法,列表中的所有元素将被永久删除。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,列表中包含整数元素 1、2、3、4
my_list = [1, 2, 3, 4]
# 调用列表的 clear 方法,该方法会移除列表中的所有元素
# 调用后,列表会变为空列表,但列表对象仍然存在
my_list.clear()
# 打印清空后的列表 my_list,此时输出结果为空列表 []
print(my_list) # 输出 []
10、copy() 方法
(1)概念:
copy() 方法用于创建列表的一个浅拷贝,即复制原列表的元素到一个新的列表中。新列表是一个独立的对象,但其元素如果是可变对象(如列表、字典等),则新列表和原列表中的这些可变对象仍然指向同一个内存地址。
(2)关键点:
● 没有参数,返回一个新的列表,其元素与原列表相同。
● 对于不可变对象(如整数、字符串等),新列表和原列表中的这些元素是独立的副本;对于可变对象,只是复制了引用。
(3)注意点:
当列表中的元素是可变对象时,修改新列表或原列表中可变对象的内容,会影响到另一个列表。如果需要完全独立的深拷贝(包括可变对象),可以使用 copy 模块的 deepcopy() 函数。
(4)举例:
Python脚本
# 创建一个名为 original_list 的列表,该列表包含一个整数 1、一个子列表 [2, 3] 和一个整数 4
original_list = [1, [2, 3], 4]
# 使用列表的 copy 方法创建 original_list 的一个浅拷贝,并将其赋值给 new_list
# 浅拷贝会复制列表的外层结构,但对于列表中的可变对象(如子列表),
# 只是复制了引用,而不是对象本身
new_list = original_list.copy()
# 打印新创建的浅拷贝列表 new_list
print(new_list) # 输出 [1, [2, 3], 4]
# 通过索引访问 new_list 中的子列表(索引为 1 的元素),
# 并使用 append 方法在该子列表末尾添加元素 5
# 由于浅拷贝中,子列表是引用关系,所以对 new_list 中该子列表的修改
# 会影响到 original_list 中的同一个子列表
new_list[1].append(5)
# 打印修改后的 new_list,此时可以看到子列表中已经添加了元素 5
print(new_list) # 输出 [1, [2, 3, 5], 4]
# 打印 original_list,会发现其内部的子列表也被修改了,
# 因为它和 new_list 中的子列表指向同一个对象
print(original_list) # 输出 [1, [2, 3, 5], 4],原列表也受影响
11、reverse() 方法
(1)概念:
reverse() 方法用于将列表中的元素顺序反转,即第一个元素变为最后一个,最后一个元素变为第一个,以此类推。它会直接修改原列表。
(2)关键点:
该方法没有参数,执行后原列表的元素顺序会发生改变。
(3)注意点:
此方法是在原列表上进行操作,没有返回值(返回 None ),不要将其赋值给变量。
(4)举例:
Python脚本
# 创建一个名为 my_list 的列表,该列表包含整数 1 到 5
my_list = [1, 2, 3, 4, 5]
# 调用列表对象 my_list 的 reverse 方法
# 此方法会直接将列表中的元素顺序反转,且会修改原列表
my_list.reverse()
# 打印反转元素顺序后的列表 my_list
print(my_list) # 输出 [5, 4, 3, 2, 1]
这些 Python 列表的常用方法在数据处理和操作中非常实用,合理运用它们可以更方便地对列表进行各种操作和处理。
【补充】Python中的“内置函数”和“方法”有何区别
参见:理工男大辉郎 在CSDN博客的文章《Python中的“内置函数”和“方法”有何区别》
——The END——
欢迎关注、收藏或转发。
转发时请注明来源于
CSDN博客:https://blog.csdn.net/imewe
微信公众号:cnFuJH