第二章 序列构成的数组

  • 列表推导
    列表推导的原则:只用列表推导来创建新的列表,并尽量保持简短。如果代码超过了两行,就要考虑用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))

你可能感兴趣的:(第二章 序列构成的数组)