第二章 序列构成的数组
2018-09-20 本文已影响0人
高调的ython
- 列表推导
列表推导的原则:只用列表推导来创建新的列表,并尽量保持简短。如果代码超过了两行,就要考虑用for循环重写了。
举例:dummy = [x for x in 'ABC'] - 列表推导同filter和map的比较
filter和map合起来能做的事情,列表推导也可以做,而且还不需要借助lambda表达式。
#filter的使用方式 filter(funciton, iterable)两个参数分别是判断函数和可迭代对象
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
#map的使用方式map(function, iterable, ...)
def suquare(x):
return x ** 2
map(square, [1,2,3,4,5]) #计算平方
- 生成器表达式
生成器表达式遵循迭代器协议,可以逐个产出元素。 生成器从来不会一次性产出所有的组合,生成器表达式在每次for 循环运行时才产生其中一个组合。
#tuple
symbols = '12345'
tuple(ord(symbol) for symbol in symbols)
#array
import array
array.array('I', (ord(symbol) for symbol in symbols))