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