Python基础(十、数据容器之列表List)

发布时间:2023年12月28日


什么是数据容器?
数据容器是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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。