各种推导式总结

推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以将循环和条件判断结合,从而避免语法冗长的代码。会使用推导式有时可以说明你已经超越了python初学者的水平。也就是说使用推导式更像Python风格。

一、列表推导式

之前已经说过创建列表的多种方法,使用[ ] 、list() 、str.split() 等方法,除此之外,列表推导式也是生成具有一定规律的列表的方法。

如创建一个从1到5的整数列表:

number_list = []
number_list.append(1)
number_list.append(2)
number_list.append(3)
number_list.append(4)
number_list.append(5)
number_list = []
for i in range(1,6):
    number_list.append(i)
print(number_list)
number_list = list(range(1,6))

#. 更简单的一种方法即列表推导式

print([x for x in range(5)])

也可以加上条件表达式:

print([x for x in range(5) if x >2])
[3, 4]

也可以加上多个条件表达式:

print([x for x in range(5) if x >2 and x <4])
[3]

二、生成器推导式

元组是没有推导式的。并不是将列表推导式中的方括号变成圆括号就可以定义元组推导式,就像下面的表达式一样:

number_thing = (number for number in range(1,6))

其实,圆括号之间的是生成器推导式,它返回的是一个生成器对象:

注:一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,但是生成器仅在运行中产生值,不会被存下来。所以不能重新使用或者备份一个生成器。

猜你喜欢

转载自www.cnblogs.com/zhangray/p/9507304.html