前言
推导式是Python特有的一种写法,它通过将循环和条件相结合,实现通过一个数据序列控制或生产新的数据序列,可以有序避免语法冗长的代码,提高程序的效率和美观度
一、条件推导式
语法:result=A if condition else B
例:判断一个数是否能被3整除
同样的效果,推导式代码更为精简
# 通常写法
num=154
if num%3:
print('num不能被3整除')
else:
print('num能被3整除')
# 条件推导式写法
num=154
print('num不能被3整除') if num%3 else print('num不能被3整除')
二、列表推导式
列表推导式通常是条件推导式结合循环使用,其返回的也是列表
语法1:[A for i in data] # 对data中的数据遍历,返回A
语法2:[A for i in data if condition] # 对data中的数据遍历,满足condition的返回A,不满足则不返回
语法3:[A if condition else B for i in data] # 对data中的数据遍历,满足condition的返回A,不满足则返回B
例1:构建一个0到9的列表,每个元素乘以10
# 通常写法
result=[]
for i in range(10):
result.append(i*10)
print(result)
# 列表推导式写法
print([10*i for i in range(10)])
例2:构建一个0到9的列表,其中奇数乘以10
# 通常写法
result=[]
for i in range(10):
if i%2:
result.append(i*10)
print(result)
# 列表推导式写法
print([10*i for i in range(10) if i%2])
result:
[10, 30, 50, 70, 90]
[10, 30, 50, 70, 90]
例3:构建一个0到9的列表,其中奇数乘以10,其中偶数乘以20
# 通常写法
result=[]
for i in range(10)