列表推导式
定义:列表解析式是Python内置的非常简单却强大的可以用来创建list的生成式。
好处:代码简洁,同时底层是C语言实现,运行速度更快。
格式:结果列表 =
[需要返回的结果 for循环迭代 if条件语句
] 条件语句不是必须的。
eg:list
=
[i for i in range(10)
] 执行后:list=[0,1,2,3,4,5,6,7,8,9]
仅仅一行代码可以完成,如果是按照平时的写法将要3行代码。
list=[]
for i in range(10):
list.append(i)
增加if条件语句:
list = [i for i in range(10) if i%2 == 0]
print(list)
#print结果
[0, 2, 4, 6, 8]
配合函数使用:
def fun(i):
if i%2 == 0:
return i
else:
return "NA"
list = [fun(i) for i in range(10)]
print(list)
#print结果
[0, 'NA', 2, 'NA', 4, 'NA', 6, 'NA', 8, 'NA']
结合lambda函数使用:
func = lambda i:i*2+1
list = [func(i) for i in range(10)]
print(list)
#print结果
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]