fluent python chapter2 note

2017-07-04  本文已影响0人  Code_Rush

2.1内置序列类型概览

容器序列:存放不同类型的数据

容器序列存放他们所包含的任意对象的引用。

扁平序列:只能容纳一种类型

扁平序列里存放的是值而不是引用。

可变序列

不可变序列

2.2列表推导和表达器生成式

列表推导(略去)

生成器表达式

与列表推倒式不同的是,生成器表达式背后遵守了迭代器协议,可以逐个的产出元素,而不是先建立一个列表,然后再把这个列表传递到某个构造函数里。这样能节省内存。
生成器表达式的语法与列表推导差不多,只不过方括号换成圆括号而已。

colors = ['black', 'white']
sizes = ['S', 'M', 'L']
for tshirt in ('%s, %s' % (c, s) for c in colors for s in sizes):
    print(tshirt)

生成器逐个产出元素,从来不会一次性产出一个含有6个T恤样式的列表。

2.3元组不仅仅是不可变的列表

元组当做一些元素的集合,那么数量和位置信息就变得非常重要了。

元组拆包

t = (20, 8)
quotient, remainder = divmod(*t) #(2, 4)

嵌套元组拆包

具名元组

collections.namedtuple是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类。

上一篇下一篇

猜你喜欢

热点阅读