本文已参与「新人创作礼」活动,一起开启掘金创作之路。
推导式
目标
- 列表推导式
- 字典推导式
- 集合推导式
推导式作用
用于表达创建一个有规律的列表,或者控制一个有规律的列表,简单来说,就是缩减代码,代码变少但是功能上不变
列表推导式
while for 推导式对比
while
#这里设置空列表
a=[]
#再设置一个遍历参数
i=0
#循环条件是i小于10
while i < 10:
#执行代码是在a列表中添加一个来自i等于的值
a.append(i)
#每次循环i在上一次基础加1
i+=1
print(a)
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for
#设置一个空列表
a=[]
#设置一个for循环,循环范围是从0到9
for i in range(10):
#设置追加,每循环一次将i或者的数据追加到a列表中
a.append(i)
#每循环一次加1
i +=1
print(a)
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
推导式
#第一个i是返回值,生成的值返回此处,后面的代码就是设置一个for循环,循环范围是从0到9,默认每次加1
a=[i for i in range(10)]
print(a)
if列表推导式
a=[i for i in range(10) if i % 2 == 0]
print(a)
输出
[0, 2, 4, 6, 8]
多个for循环实现列表推导式
a=[]
for i in range(1,3):
for j in range(3):
a.append((i,j))
print(a)
输出
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
推导式
a=[(i,j) for i in range(1,3) for j in range(3)]
print(a)
输出
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
字典推导式
a={i: i for i in range(1,20,2)}
print(a)
{1: 1, 3: 3, 5: 5, 7: 7, 9: 9, 11: 11, 13: 13, 15: 15, 17: 17, 19: 19}
a={i: i**2 for i in range(1,20,2)}
print(a)
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81, 11: 121, 13: 169, 15: 225, 17: 289, 19: 361}
列表合并为字典
a=['name','age','password']
b=['佬6','20','666666']
c={a[i]:b[i] for i in range(len(a))}
#如果两个列表数据个数相同,len统计任何一个列表的长度都可以
#如果两个列表数据个数不相同,len统计数据列表的数据个数会报错,lent统计数据少的列表会报错
输出
{'name': '佬6', 'age': '20', 'password': '666666'}
集合推导式
a=[1,2,3]
b={i ** 2 for i in a}
print(a)
[1, 2, 3]
总结
列表推导式
[xx for xx in range()]
字典推导式
{xx1: xx2 for in}
集合推导式
{xx for xx in}
\