Python基础(十、数据容器之列表List)
2023-12-28 12:09:43
文章目录
什么是数据容器?
数据容器是Python中用于存储和操作数据的对象。它们可以容纳不同类型的数据,如数字、字符串、列表、字典等,并提供了各种方法来访问和操作这些数据。
有哪些数据容器?
Python提供了几种常见的数据容器,包括列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。他们都能满足容纳多个元素的特点。
每种容器都有其独特的特点和用途,我们将逐一探索它们。
列表(List)
列表是一个有序的数据集合,可以容纳任意数量的元素。它具有可变性,即可以添加、删除或修改其中的元素。
一、基本语法
# 字面量
[元素1,元素2,元素3,元素4,……]
# 定义变量
变量名称 = [元素1,元素2,元素3,元素4,……]
# 定义空列表
变量名称 = []
变量名称 = list()
列表内的每一个数据,称之为元素
- 以[ ]作为标识
- 列表内每一个元素之间,用逗号隔开
例如,我们可以创建一个名为fruits的列表。
fruits = ['apple', 'banana', 'orange']
print(fruits)
print(type(fruits))
zooms = [True, 666, fruits]
print(zooms)
print(type(zooms))
输出:
['apple', 'banana', 'orange']
<class 'list'>
[True, 666, ['apple', 'banana', 'orange']]
<class 'list'>
注意:
列表中存储的元素类型是不受限的,可以是字符串、数字、布尔、列表等;
列表中元素是列表,即为嵌套列表
。
二、列表的下标(索引)
如何从列表中获取特定位置的元素呢?
可以使用下标索引获取元素。
例如:
fruits = ['apple', 'banana', 'orange']
'apple':下标索引是0
'banana':下标索引是1
'orange':下标索引是2
取值语法:
列表变量名[下标索引]
下标索引-正向
列表中每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增。
fruits = ['apple', 'banana', 'orange']
zooms = ['大象', 666, fruits]
print(zooms[0])
print(zooms[1])
print(zooms[2])
输出
大象
666
['apple', 'banana', 'orange']
取出嵌套列表的数据,嵌套列表中会按照下标索引-正向从前向后,从0开始,依次递增。
fruits = ['apple', 'banana', 'orange']
zooms = ['大象', 666, fruits]
print(zooms[2][0])
print(zooms[2][1])
print(zooms[2][2])
输出
apple
banana
orange
下标索引-反向
从后向前的方向,从-1开始,依次递减。
例如:
fruits = ['apple', 'banana', 'orange']
'apple':下标索引是-3
'banana':下标索引是-2
'orange':下标索引是-1
fruits = ['apple', 'banana', 'orange']
zooms = ['大象', 666, fruits]
print(zooms[-1])
print(zooms[-2])
print(zooms[-3])
输出
['apple', 'banana', 'orange']
666
大象
这里取出嵌套数据的方法就自行联系吧~
三、列表的方法
3.1 查询下标索引——index方法
语法(查找指定元素在列表的下标,如果找不到,报错ValueError)
列表变量名.index(元素)
例如:
zooms = ['大象', 666, fruits]
print(zooms.index(666))
print(zooms.index(66))
输出
1
Traceback (most recent call last):
File "D:\jushu\demo\func1.py", line 20, in <module>
print(zooms.index(66))
ValueError: 66 is not in list
3.2 修改功能
语法
列表变量名[下标]=值
例如:
zooms = ['大象', 666, fruits]
zooms[1] = 66
print(zooms)
print(zooms.index(66))
输出
['大象', 66, ['apple', 'banana', 'orange']]
1
3.3 插入功能——insert方法
语法
列表变量名.insert(下标,值)
例如:
zooms = ['大象', 666, fruits]
zooms.insert(1,'新数据放到下标索引为1的位置')
print(zooms)
输出
['大象', '新数据放到下标索引为1的位置', 666, ['apple', 'banana', 'orange']]
3.4 追加元素(添加到末尾)——append方法
语法(将指定元素追加到列表的尾部)
列表变量名.append(元素)
例如:
zooms = ['大象', 666, fruits]
zooms.append('末尾加个数据')
print(zooms)
输出
['大象', 666, ['apple', 'banana', 'orange'], '末尾加个数据']
3.5 追加多个元素(添加到末尾)——extend方法
语法(将元素追加到列表的尾部)
列表变量名.extend(元素)
例如:
zooms = ['大象', 666, fruits]
newlist= [True, 23]
zooms.extend(newlist)
print(zooms)
输出
['大象', 666, ['apple', 'banana', 'orange'], True, 23]
3.6 删除——del方法、pop方法、remove方法
语法
del 列表变量名[下标]
# pop可以将删除列表中的数据赋值给变量
列表变量名.pop(下标)
# remove会删除列表中的第一个匹配项
列表变量名.remove(元素)
例如:
zooms = ['大象', 666, ['apple', 'banana', 'orange'], '末尾加个数据']
del zooms[1]
print(zooms)
strs = zooms.pop(2)
print(f'通过pop取出元素,{strs},{zooms}')
zooms = ['大象', 666, ['apple', 'banana', 'orange'], '大象']
zooms.remove('大象')
print(zooms)
输出
['大象', ['apple', 'banana', 'orange'], '末尾加个数据']
通过pop取出元素,末尾加个数据,['大象', ['apple', 'banana', 'orange']]
['大象',666, ['apple', 'banana', 'orange']]
3.7 清空列表——clear方法
语法
列表变量名.clear()
例如:
zooms.clear()
print(zooms)
输出
[]
3.8 统计某元素在列表内的数量——count方法
语法
变量名 = 列表变量名.count(元素)
例如:
zooms = ['大象', '小狼', '大象', '小老虎']
count = zooms.count('大象')
print(count)
输出
2
3.9 列表内的元素数量——len方法
语法
变量名 = len(列表变量名)
例如:
zooms = ['大象', '小狼', '大象', '小老虎']
count = len(zooms)
print(count)
输出
4
四、列表特点总结
- 可以容纳多个元素(上限为 2 63 ? 1 ) 可以容纳多个元素(上限为2^{63} - 1) 可以容纳多个元素(上限为263?1)
- 可以容纳不同类型的元素
- 数据是有序存储的(参考下标)
- 允许重复数据
- 可以修改(增加或删除元素等)
五、遍历列表
for循环遍历
当我们需要遍历一个列表时,可以使用Python中的for循环结构来实现。具体用法如下:
for element in list:
# 处理每个元素的代码
其中,element是当前循环中的元素变量,list是要遍历的列表名称。在每次循环中,element会依次取到列表中的每个元素,直到处理完所有元素为止。
下面是一个简单的例子,遍历一个包含数字的列表,并打印出每个数字:
# 定义一个数字列表
numbers = [1, 2, 3, 4, 5]
# 遍历并打印每个数字
for num in numbers:
print(num)
输出结果:
1
2
3
4
5
在循环中,num逐一取到列表中的每个数字,并使用print()函数打印出来。这样就完成了遍历列表的操作。
文章来源:https://blog.csdn.net/qq_35716085/article/details/135220636
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!