在 python 中的 for 循环中创建一个新列表
Create a new list in a for loop in Python
要在 for 循环中创建一个新列表:
- 使用
for
循环遍历range
对象。 - 创建包含或不包含项目的列表。
- 将新列表附加到现有列表。
主程序
my_list = [] for i in range(3): my_list.append([]) print(my_list) # 👉️ [[], [], []] # ---------------------------------------------- my_list = [] for i in range(3): new_list = [] for j in range(3): new_list.append(j) my_list.append(new_list) print(my_list) # 👉️ [[0, 1, 2], [0, 1, 2], [0, 1, 2]] # ---------------------------------------------- my_list = [] for i in range(3): my_list.append(i) print(my_list) # 👉️ [0, 1, 2]
第一个示例使用for
循环来迭代range
对象。
在每次迭代中,我们将一个空列表附加到现有列表。
主程序
my_list = [] for i in range(3): my_list.append([]) print(my_list) # 👉️ [[], [], []]
结果是一个包含 N 个空列表的二维列表。
range类通常用于在循环中循环特定次数,for
并采用以下参数:
姓名 | 描述 |
---|---|
start |
表示范围开始的整数(默认为0 ) |
stop |
向上,但不包括提供的整数 |
step |
范围将由每 N 个数字组成,从start 到stop (默认为1 ) |
如果您只将单个参数传递给range()
构造函数,则它被认为是stop
参数的值。
主程序
for n in range(5): print(n) # 👉️ 0 1 2 3 4 result = list(range(5)) # 👇️ [0, 1, 2, 3, 4] print(result)
该示例表明,如果
start
省略参数,则默认为0
,如果step
省略参数,则默认为1
.如果提供了start
和stop
参数的start
值,则该值是包含性的,而该stop
值是独占性的。
主程序
result = list(range(1, 5)) # 👇️ [1, 2, 3, 4] print(result)
如果您需要用项目填充新列表,请使用嵌套for
循环迭代第二个range
对象。
主程序
my_list = [] for i in range(3): new_list = [] for j in range(3): new_list.append(j) my_list.append(new_list) print(my_list) # 👉️ [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
内部for
循环迭代另一个range
对象并将数字 0、1 和 2 附加到每个子列表。
确保在每次迭代时将子列表附加到原始列表。
list.append
()
方法将一个项目添加到列表的末尾。
您也可以从1
或任何其他值开始范围。
主程序
my_list = [] for i in range(3): new_list = [] for j in range(1, 4): new_list.append(j) my_list.append(new_list) print(my_list) # 👉️ [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
如果您需要创建一个简单的数字列表,您可以使用for
循环或将list()
类与range
对象一起使用。
主程序
my_list = [] for i in range(1, 4): my_list.append(i) print(my_list) # 👉️ [1, 2, 3] my_list = list(range(1, 4)) print(my_list) # 👉️ [1, 2, 3]
使用list()
该类将range
对象转换为列表比在循环list.append()
的每次迭代中使用要快一些for
。