Python学习笔记--2.5 列表生成式

如果想要生成一个list
res=[]#先定义一个空list
for i in range(1,34):#生产出来的是1到33。生成的是int类型。
res.append(str(i).zfill(2))#把生成的int类型转换成字符串。用zfill补成2位。存在res列表中。
print(res)

#for循环生成的是多个字符串,如果要生成列表还要重新定义,用列表生成式可以一行代码直接生成。
#上面代码可以改为:
res=[str(i).zfill(2) for i in range(1,34)]
print(res)
#打印结果也一样:['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33']

说明:
res=[str(i).zfill(2) for i in range(1,34)]#这个的意思就是,先看后半段,循环1到33,生成给i。然后str(i).zfill(2),i转换成字符串,补成两位。也可以根据需要替换成对i的其他操作,加减乘除也可以。

例如:
l1=[i for i in range(10)] #生成0-9的整数。每次循环生成一个i,然后把i放入l1中。
print(l1)
#打印结果[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l2=[i+1 for i in range(10)] #生成0-9的整数。每次循环生成一个i,然后把i+1放入l2中。
print(l2)
#打印结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

l3=[i+1000 for i in range(10)] #生成0-9的整数。每次循环生成一个i,然后把i+1000放入l3中。
print(l3)
#打印结果[1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009]


原文地址:https://www.cnblogs.com/youyou-luming/p/9745324.html