第8天:Python List

简介: 第8天:Python List

Python 中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构 在 Python 中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从0开始,以此类推......


  • 列表俗称是 Python 中的苦力,列表可变(可以改变列表的内容)
  • 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:


list1 = ['baidu', 'google', 12, 34];list2 = [1, 2, 3, 4, 5 ];list3 = ["a", "b", "c", "d"];


1. 列表函数


1.1 list 函数


如果对字符串赋值后想要改变字符串中的某个值,因为字符串不能像列表一样可更改,如果想改变这时候可以利用 list 函数,如下:


>>> ll=list('hello')>>> ll['h', 'e', 'l', 'l', 'o']>>> ll[2]'l'>>> ll[2]='5'>>> ll['h', 'e', '5', 'l', 'o']


注意:list 函数适用于所有类型的序列,而不只是字符串


1.2 len 函数


len 函数返回列表中的元素个数


>>> list1 = ['baidu', 'google', 12, 23];>>> len(list1)4


1.3 max 函数


max 函数返回列表元素最大值


>>> list_num=[2,3,5,6,8,12]>>> max(list_num)12


1.4 min 函数

返回列表元素最小值



>>> list_num=[2,3,5,6,8,12]>>> min(list_num)2


2 列表方法


列表提供了几个详细的方法,这些方法用于检查或者修改列表中的内容


2.1 append


append 方法用于在列表的末尾追加新的内容


list_append = [1,2,3,4]list_append.append(5)list_append[1, 2, 3, 4, 5]


2.2 count


count 方法用于统计某个元素在列表中出现的次数


num[1, 2, 3, 4, 5, 5, 5, 5, 6]# 统计num列表中5出现的次数num.count(5)4
# 统计字母a出现的次数name=['a','a','abf','ark','nhk']
name.count('a')2


2.3 extend


extend 方法表示追加内容,它可以在列表的末尾一次性追加另一个序列中的多个值,也就是用新列表扩展原有列表


a =[1,2,3]b = [4,5,6]# 将列表b追加在列表a后面a.extend(b)a[1, 2, 3, 4, 5, 6]

此操作和列表的相加操作,但是追加操作改变原有列表,而相加不改变原有列表,例如:


a = [1,2,3]b = [4,5,6]a + b[1, 2, 3, 4, 5, 6]# 连接操作不改变原有列表a[1, 2, 3]


2.4 index


index 方法用于从列表中找出某个元素第一次匹配的位置的索引位置


content = ['where','who','lisi','cntent','who']content.index('who')1


==注意:== 以上方法中有两个位置有‘who’,但是只找出了第一次匹配的索引位置元素


2.5 insert


insert 方法用于像列表中插入对象



num = [1,2,5,6,7]num.insert(2,3)num[1, 2, 3, 5, 6, 7]num.insert(3,4)num[1, 2, 3, 4, 5, 6, 7]


2.6 pop

pop 方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值


x = [1,2,3]x.pop()3x[1, 2]x.pop()2x[1]


注意:pop 方法是唯一一个既能修改列表又能返回元素值的方法(除了None),pop 和 append 方法是 Python 中数据结构的出栈和入栈,如果追加(append)刚刚出栈(pop)的值,得到的还是原来的列表


x = [1,2,3]x.append(x.pop())x[1, 2, 3]


2.7 remove

remove 方法用于移除列表中第一个匹配的元素


content['where', 'who', 'lisi', 'cntent', 'who', 'who']# 移除了第一个匹配的元素content.remove('who')content['where', 'lisi', 'cntent', 'who', 'who']


2.8 reverse

reverse 方法是将列表中的元素进行反转操作


x[1, 2, 3]# 元素反向存储x.reverse()x[3, 2, 1]


2.9 sort

sort 方法用于在原位置排序,‘原位置排序’意味着改变原来的列表而让列表中的元素有顺序排列


x = [2,3,5,6,1,4,7]x.sort()x[1, 2, 3, 4, 5, 6, 7]


2.10 clear

clear 方法用于清空列表


>>> list1=['baidu', 'google', 12, 23]>>> list1['baidu', 'google', 12, 23]# 清空列表内容>>> list1.clear()>>> list1[]


2.11 copy

copy 方法是复制列表


>>> list1 = ['baidu', 'google', 12, 23];>>> list1.copy()['baidu', 'google', 12, 23]>>> list2 = list1.copy()>>> list2['baidu', 'google', 12, 23]


3. 列表基本操作


列表可以使用所有适用于序列的标准操作,比如第7天所学的索引、分片、连接和相乘,更有趣的是,列表是可以修改的,也就是定义的列表内容可以根据需求更改,本节介绍一些改变列表的方法:如元素赋值、元素删除、分片赋值以及列表方法(但是请注意,并不是所有的列表方法都能真正改变列表)


3.1 改变列表:元素赋值


在列表中要给指定的元素赋值时,我们需要指定特定的索引标记来为列表中某个特定的,位置明确的元素赋值,比如 x[3]=5


# x=[1,2,3,4,5]x[1, 2, 3, 4, 5]# 改变列表第四个元素的内容x[3]=5x[1, 2, 3, 5, 5]



==注意:== 不能为一个位置不存在的元素赋值,如果列表长度为2,则不能为索引为10 的元素进行赋值,如果需要赋值则需要创建一个长度为11的列表。


3.2 删除列表元素

若要删除列表中的元素,直接利用del删除即可



# 定义长度为4的姓名列表names=['zhangsan','lisi','wangwu','zhaoliu']names['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
# 删除第三个元素del names[2]
# 最后列表长度由4变为3names['zhangsan', 'lisi', 'zhaoliu']


del 语句还能用于删除其他元素,也可以用于变量的删除操作。


3.3 分片赋值


在 Python 中对序列或者列表的分片操作是一个很强大的特性,分片赋值会显得更加强大,例如:


# 定义一个listname = list('Pyther')
# 改变 list 中的最后两个值name[4:]='on'name['P', 'y', 't', 'h', 'o', 'n']


从上可知,程序可以一次为多个元素赋值,在分片赋值时,可以使用与原序列不等长的序列将分片替换,例如:


name_re = list('perl')name_re['p', 'e', 'r', 'l']# 分片替换name_re[1:] = list('ython')name_re['p', 'y', 't', 'h', 'o', 'n']

分片赋值还可以在不需要更改原有列表任何内容的情况下进行新元素插入


num = [1,4,5]# 在第一个元素后插入新的元素num[1:1]=[2,3]num[1, 2, 3, 4, 5]

同理也可以通过分片操作来删除列表中的元素,同样也支持负数分片操作


num[1, 2, 3, 4, 5]# 给第一个和迪桑元素之间分片赋值一个空序列,即删除元素num[1:3] = []num[1, 4, 5]
# 负数分片操作num[-1:-1] = [5,5,5]num[1, 2, 3, 4, 5, 5, 5, 5, 6]


总结


本节给大家介绍了 Python 数据结构之列表的操作与使用,对 Python 工程师使用列表提供了支撑。


系列文章

目录
相关文章
|
9天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
22 14
|
11天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
27 10
|
2月前
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
2月前
|
索引 Python
Python列表操作-推导式(List Comprehension)
Python列表操作-推导式(List Comprehension)
28 0
|
3月前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
49 0
|
4月前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
72 7
|
4月前
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
50 0
【python】python指南(五):静态类型注解之List
|
4月前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()
本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。
38 0
|
5月前
|
Python
|
4月前
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
26 0
下一篇
DataWorks