python蓝桥杯备考——列表还是元组?
简介
1、在 Python 中,我们通常使用术语 “列表”(List)来表示有序、可变的序列。列表是一种数据结构,可以容纳任意类型的元素,并且可以根据需要进行修改。
与其他编程语言中的数组不同,Python 中的列表具有更灵活的特性。列表可以包含不同类型的 元素,可以动态调整大小,可以进行切片操作和迭代,以及支持许多内置的方法和函数。
因此,在 Python 中,我们通常使用术语 “列表” 来表示有序的集合,而不是使用 “数组” 这个术语。
2、需要注意的是,Python 中也有一个名为 “数组”(Array)的模块,它提供了一种固定大小的、同质的数据结构。但是,通常情况下,我们更倾向于使用列表来处理动态大小和异质元素的情况。
当涉及到列表和数组的用法时,以下是一些常见的操作和方法:
列表(List)的用法:
- 创建列表:使用方括号
[]
或者使用list()
函数来创建一个空列表或包含元素的列表。 - 访问元素:使用索引来访问列表中的元素,索引从0开始。
- 修改元素:可以通过索引来修改列表中的元素。
- 切片操作:使用切片操作
list[start:stop:step]
来获取列表的子序列。 - 添加元素:使用
append()
方法在列表末尾添加元素,使用insert()
方法在指定位置插入元素。 - 删除元素:使用
del
语句、remove()
方法或pop()
方法来删除列表中的元素。 - 遍历列表:使用循环来遍历列表中的元素,如
for
循环。 - 列表方法:列表提供了许多内置方法,如
sort()
、reverse()
、count()
、index()
等。
数组(Array)的用法:
- 导入模块:使用
import array
导入数组模块。 - 创建数组:使用
array.array()
函数来创建一个数组,需要指定数组的类型码。 - 访问元素:使用索引来访问数组中的元素,索引从0开始。
- 修改元素:可以通过索引来修改数组中的元素。
- 数组方法:数组提供了一些方法,如
append()
、insert()
、remove()
等。
以下是一些更详细的解释和示例:
列表(List)的用法:
- 创建列表:
- 使用方括号
[]
创建一个空列表:my_list = []
- 使用
list()
函数创建一个空列表:my_list = list()
- 创建包含元素的列表:
my_list = [1, 2, 3, 4]
- 使用方括号
- 访问元素:
- 使用索引访问列表中的元素,索引从0开始:
print(my_list[0])
- 使用索引访问列表中的元素,索引从0开始:
- 修改元素:
- 使用索引来修改列表中的元素:
my_list[0] = 10
- 使用索引来修改列表中的元素:
- 切片操作:
- 使用切片操作获取列表的子序列:
sub_list = my_list[1:3]
- 使用切片操作获取列表的子序列:
- 添加元素:
- 使用
append()
方法在列表末尾添加元素:my_list.append(5)
- 使用
insert()
方法在指定位置插入元素:my_list.insert(2, 6)
- 使用
- 删除元素:
- 使用
del
语句删除列表中的元素:del my_list[0]
- 使用
remove()
方法删除指定的元素:my_list.remove(3)
- 使用
pop()
方法删除指定位置的元素,并返回该元素的值:my_list.pop(1)
- 使用
- 遍历列表:
- 使用
for
循环遍历列表中的元素:
- 使用
for item in my_list:
print(item)
8. 列表方法:
- 列表提供了许多内置方法,如
sort()
、reverse()
、count()
、index()
等。例如,使用sort()
方法对列表进行排序:
my_list.sort()
数组(Array)的用法:
- 导入模块:
- 使用
import array
导入数组模块:import array
- 使用
- 创建数组:
- 使用
array.array()
函数来创建一个数组,需要指定数组的类型码。例如,创建一个包含整数的数组:
- 使用
my_array = array.array(‘i’, [1, 2, 3, 4])
3. 访问元素:
- 使用索引访问数组中的元素,索引从0开始:
print(my_array[0])
- 修改元素:
- 使用索引来修改数组中的元素:
my_array[0] = 10
- 使用索引来修改数组中的元素:
- 数组方法:
- 数组提供了一些方法,如
append()
、insert()
、remove()
等。例如,使用append()
方法在数组末尾添加元素:
- 数组提供了一些方法,如
my_array.append(5)
如何创建二维数组
rows = 3
cols = 4
my_array = [[0] * cols for _ in range(rows)]
等同于 my_array = [[0 for i in range(3)] for j in range(4)]
print(my_array[1][2]) # 访问第2行第3列的元素
my_array[0][1] = 10 # 修改第1行第2列的元素
[[0] * cols for _ in range(rows)]
是一个使用列表推导式创建二维数组的表达式。让我详细解释它的工作原理:
range(rows)
:range()
函数生成一个从0到rows-1
的整数序列,用于表示二维数组的行号。0
:这是内层列表的初始值,我们将其设置为0。[0] * cols
:这是一个简单的列表乘法操作,将0重复cols
次,生成一个包含cols
个0的列表。for _ in range(rows)
:这是一个迭代语句,用于遍历行号的整数序列。[[0] * cols for _ in range(rows)]
:这是一个列表推导式,它将内层列表[0] * cols
重复rows
次,生成一个包含rows
行的二维数组。
用列表的方式创建二维数组
for i in range(3):
lst02 = list(map(int, input().split()))
lst01.append(lst02)
1、在这个代码中,lst01
是一个空列表,用于存储二维数组的行。然后,使用一个循环来迭代3次,每次迭代都会创建一个新的列表 lst02
,并将其作为一行添加到 lst01
中。
2、在每次迭代中,使用 input().split()
获取输入的字符串,并使用 map(int, ...)
将每个字符串转换为整数。然后,使用 list()
函数将转换后的整数列表存储在 lst02
中。
3、最后,通过 lst01.append(lst02)
将 lst02
添加到 lst01
中,形成一个二维数组。
这样,你就可以通过循环获取多行输入,并将每行的元素存储在二维数组中。