13、Python列表的常用方法【用Python进行AI数据分析进阶教程】


欢迎订阅 本专栏

用Python进行AI数据分析进阶教程


关键词:列表方法、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理工男大辉郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值