一,列表推导式和生成器表达式
l = [i for i in range(10)]
print(l)
l1 = ['选项%s'%i for i in range(10)]
print(l1)
1.把列表解析的[]换成()得到的就是生成器表达式
2.列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存
3.Python不但使用迭代器协议,让for循环变得更加通用。大部分内置函数,也是使用迭代器协议访问对象的。例如, sum函数是Python的内置函数,该函数使用迭代器协议访问对象,而生成器实现了迭代器协议,所以,我们可以直接这样计算一系列值的和:
sum(x ** 2 for x in range(4))
列表推导式
例一:30以内所有能被3整除的数
multiples = [i for i in range(30) if i % 3 is0]print(multiples)#Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
View Code
例二:30以内所有能被3整除的数的平方
defsquared(x):return x*x
multiples= [squared(i) for i in ra