目的:快速生成一个列表
1、for循环执行前面的语句,次数为for后的计数
x = range(1,8)
y = [i for i in x]
print(y)
拆解上述代码,先执行for i in x,取出x的第一个值1,赋值给i,然后执行for前的代码,只有一个i,那么就直接输出当前i的值,即1为列表的第一个元素。
再次执行for,取出x的第二个值2,赋值给i,然后执行for前的代码,只有一个i,那么就直接输出当前i的值,即2为列表的第二个元素。以此类推,打印如下:
2、加入随机数的模块
import random
x = range(1,8)
y = [random.randint(15, 30) for i in x]
print(y)
z=random.randint(1,5)
print(z)
同理,先看for循环,执行第一次循环,x取值1,并赋值给i,for前的代码与i值无关,随机取出(15,30)中的一个数,作为列表的第一个值。
那么说明for循环单纯作为计数,然后执行for前的代码。
结果如下(因为随机取数,每次执行结果不同)