在使用python时,有时会需要根据传入的变量来决定生成的列表个数,那如何使用循环来自动生成n个列表呢?直接上代码:
# 使用循环生成10个列表,每个列表包含数字的平方
list_of_lists = [ [x**2 for x in range(1, 6)] for _ in range(10)]
# 打印生成的列表
for i, sublist in enumerate(list_of_lists):
print(f"List {i+1}: {sublist}")
#输出结果:
List 1: [1, 4, 9, 16, 25]
List 2: [1, 4, 9, 16, 25]
List 3: [1, 4, 9, 16, 25]
List 4: [1, 4, 9, 16, 25]
List 5: [1, 4, 9, 16, 25]
List 6: [1, 4, 9, 16, 25]
List 7: [1, 4, 9, 16, 25]
List 8: [1, 4, 9, 16, 25]
List 9: [1, 4, 9, 16, 25]
List 10: [1, 4, 9, 16, 25]
其中:
for _ in range(10)
中的“_”一般仅仅用于循环n次,不设置变量,用 _ 指代临时变量,只在这个语句中使用一次。当然也可以使用:
list_of_lists = [ [x**2 for x in range(1, 6)] for i in range(10)]
但是这个“i”有时候会让人摸不着头脑,看个人习惯把,都可以。
上述代码生成的列表以元素的形式,存在list_of_lists这个大列表中,也就是说:
list_of_lists[0][0] = 6
list_of_lists[0].append(8)
第一行是对循环生成的第一个列表的第一个元素赋值为6,第二行是在循环生成的第一个列表的最后一个元素后添加元素8,则第一个列表目前的值如下:
[6, 4, 9, 16, 25, 8]