> 文章列表 > Python入门教程+项目实战-10.3节: 列表的操作方法

Python入门教程+项目实战-10.3节: 列表的操作方法

Python入门教程+项目实战-10.3节: 列表的操作方法

目录

10.3.1 列表常用操作方法

10.3.2 列表的添加

10.3.3 列表的查找

10.3.4 列表的修改

10.3.5 列表的删除

10.3.6 与列表有关的其它操作方法

10.3.7 知识要点

10.3.8 系统学习python


10.3.1 列表常用操作方法

列表类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,着重介绍列表类型的常用操作方法。

10.3.2 列表的添加

(1) list.append(object)

函数说明:

将参数object代表的数据对象添加至列表中,元素被添加至列表的尾部,该方法无返回值。在定义一个空的列表时,无法通过索引来进行元素的添加。添加新的元素需通过本节介绍的列表添加方法。

代码实例:

Python

# __desc__ = 执行append方法来添加新元素# 定义一个空的列表,空列表无法通过索引来添加元素
plans = []# 参数object可为任意数据类型
# 执行append方法时,元素被添加至列表的尾部,即列表最右边的位置
plans.append("每天晚上做100个俯卧撑")
plans.append(666)# plans的输出为["每天晚上做100个俯卧撑", 666]

(2) list.insert(index, object)

函数说明:

参数index表示索引值,insert方法用来在index的前一个位置来插入元素。如果index的值大于列表中的最大索引,那么等同于执行append方法。

append方法是每次将元素添加至列表尾部,而通过 insert方法可以在指定位置来插入元素。

代码实例:

Python

# __desc__ = 执行insert方法在指定位置插入元素。# 定义一个空的列表plans
plans = []
plans.insert(0, "每天晚上做100个俯卧撑")
# plans的输出为["每天晚上做100个俯卧撑"]# 继续在索引0前面的位置进行元素添加,此时索引0中的元素为
"每天晚上做100个俯卧撑"plans.insert(0, 66)
# plans的输出为[66,"每天晚上做100个俯卧撑"]

(3) list.extend(iterable)

函数说明

在列表的末尾添加一个可迭代对象,无返回值。extend方法只接受可迭代的对象,会将可迭代对象中的元素逐一添加到列表中。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行extend方法在列表末尾添加一个可迭代对象# 定义一个空的列表plans
plans = []
plans.extend("每天晚上做100个俯卧撑")
# plans的输出为['每', '天', '晚', '上', '做', '1', '0', '0', '个', '俯', '卧', '撑']'''
同学们需要注意extend方法与append方法的区别。
extend方法是添加一个可迭代对象,
会将可迭代对象中的元素逐个添加到列表中。
append方法是将数据对象作为一个整体添加到列表中
'''# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
# plans的输出为['每天晚上做100个俯卧撑']

凡是可以将数据集合中的元素进行逐一遍历的都是可迭代对象。迄今为止学过的可迭代类型有字符串类型,列表类型。

10.3.3 列表的查找

(1) list.index(value, [start, [stop]])

函数说明:

查在列表中查找元素是否存在,如果存在会返回该元素的索引,如果不存在会抛出异常。start表示查找的起始位置,stop表示查找的结束位置(闭区间,不包括stop)。

start的默认值为0,end的默认值为列表的长度。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行index方法来查找元素的索引# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
# plans现在的输出为["每天晚上做100个俯卧撑", 666]index = plans.index(666)
# index的输出为1

(2) list.count(value)

函数说明:

查找元素值value在列表中出现的次数,元素值value不存在时,返回0。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行count方法来查找元素的数目# 定义一个空的列表numbers
numbers = []
numbers.append(666)
numbers.append(666)
# numbers的输出为[666, 666]count_of_number =  numbers.count(666)
# count_of_number的输出为2count_of_number =  numbers.count(999)
# count_of_number的输出为0

现在写一段简单的代码实例,通过循环结构来实现count方法的功能。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 通过循环结构来实现count方法的功能# 定义一个空的列表numbers
numbers = []
numbers.append(666)
numbers.append(666)
# numbers的输出为[666, 666]count_of_number = 0
key_number = 666# 代码逻辑很简单,如果元素值相等,就对count_of_number进行自增
for _ in numbers:count_of_number = count_of_number+1 if key_number == _ else count_of_number
else:print(count_of_number)
# 程序的输出为2

10.3.4 列表的修改

在10.2节的内容中介绍了可以通过[]操作符对列表的元素值进行修改。同学们要注意的是[]中的索引必须在有效的范围之内,否则会抛出访问越界的错误异常。

10.3.5 列表的删除

(1) list.pop([index])

函数说明:

删除索引index对应的元素值,index的值默认为列表的最大索引值,也就是说,pop方法默认删除尾部的元素。列表的最大索引值为列表长度减一。返回值为被删除的列表元素,index的值必须在列表有效的索引范围内,否则会抛出异常。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 通过pop方法来删除列表中的指定位置的元素# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
# plans的输出为["每天晚上做100个俯卧撑", 666]# 1. pop方法不传递任何参数时,默认删除尾部中的元素
plan = plans.pop()
# plan的输出为666
# plans的输出为["每天晚上做100个俯卧撑"]# 在pop方法中传递参数时,表示删除指定索引位置的元素
plan = plans.pop(0)# 2. plan的输出为"每天晚上做100个俯卧撑"
# plans迭代输出为[]# 3. 索引必须在有效的范围之内,否则抛出错误异常
plans.pop()
# 抛出异常,此时的plans为空列表。

对索引的有效范围不是很熟悉的同学,可以复习9.2节中的内容。

(2) list.remove(value)

函数说明:

执行remove方法来直接删除列表中的元素,无返回值。注意:remove方法只删除首次匹配的元素

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行remove方法来直接删除元素# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
plans.append(666)
# plans的输出为["每天晚上做100个俯卧撑", 666, 666]plans.remove(666)
# plans的输出为["每天晚上做100个俯卧撑", 666]

现在写一段简单的代码实例,通过循环结构以及列表的切片操作来实现remove方法的功能。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 通过循环结构以及切片操作来实现remove方法的功能# 定义一个空的列表plans
plans = list()
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
plans.append(666)plan = 666# index变量用来保存遍历的索引位置
index = 0
for _ in plans:if plan == _:""" 如果元素值相等就执行切片操作 """plans = plans[:index]+plans[index+1:]# 然后再执行break退出循环breakindex += 1print(plans)
# 程序的输出为["每天晚上做100个俯卧撑", 666]

(3) list.clear()

函数说明:

无参数,无返回值,一键清空列表中的所有元素。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行clear方法将列表中的元素全部清除# 小美喜欢做计划
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]# 但是她从来没实现过,在暴怒之下,她一键执行了clear方法将计划全部清除
plans.clear()
# plans的输出为[]

10.3.6 与列表有关的其它操作方法

(1) len(container)

函数说明:

len方法是一个内置方法,用来返回容器数据类型中的元素数目。Python中的复合数据类型都是一种容器类的数据对象。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行len方法获取列表的元素数目# 小美喜欢做计划,却从来不认真去执行
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]how_many_plans = len(plans)
# how_many_plans的输出为2

(2) list.sort(key=None, reverse=False)

函数说明:

对列表进行原地排序,只使用 < 操作符来进行元素值的比较。 如果在比较过程中发生异常,那么排序操作会失败。参数key的默认值为None, 用来传递带一个参数的函数。sort方法会将列表元素传递给该函数,然后根据该函数的输出来进行比较。例如key=len,那么sort方法会计算列表元素的长度,然后根据长度来进行排序。参数reverse用来指定是降序排序还是升序排序。reverse为False时表示升序排序,为True时表示降序排序。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行sort方法对列表进行排序# 定义一个杂乱无序的数字列表
numbers = [1,3,5,7,1,4,9]
# 执行sort方法来排序,sort方法不带任何参数时表示直接根据元素大小进行升序排序
numbers.sort()
# numbers的输出为[1,1,3,4,5,7,9]# 定义一个杂乱无序的数字列表
numbers = [[1,2,3],[4,5],[6,7,8,9]]# key传递的是len,sort方法会先计算列表元素的len值,然后进行降序排序
numbers.sort(key=len, reverse=True)
# numbers的输出为[[6,7,8,9],[1,2,3],[4,5]]# 在key指定的方法中,传递给该方法的列表项必须是合法的参数类型
# 比如传递简单数据类型给len方法时就会抛出异常

(3) str.join(list)

函数说明:

当列表中的元素类型全为字符串时,可以通过字符串的join方法将列表中的元素组成以str做为分隔符的字符串。

代码实例:

Python

# __author__ = 薯条编程
# __desc__ = 执行字符串类型的join方法来将列表中的元素进行拼接# 小美喜欢做计划,却从来不认真去执行
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]# plans_never_implemented变量表示从未认真执行过的计划
plans_never_implemented =",".join(plans)# plans_never_implemented的输出为"每天晚上做瑜伽来健身,每个月看两本书"

10.3.7 知识要点

(1) 在定义一个空的列表时,无法通过索引来进行元素的添加。添加新的元素需要通过append方法。

(2) append方法是将数据对象作为一个整体进行添加,而extend方法是将可迭代对象中的元素逐个地添加至列表中。

10.3.8 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。