美文网首页
fluent python chapter2 note

fluent python chapter2 note

作者: Code_Rush | 来源:发表于2017-07-04 17:43 被阅读0次

    2.1内置序列类型概览

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

    • list
    • tuple
    • collections.deque

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

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

    • str
    • bytes
    • bytearray
    • memoryview
    • array.array

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

    可变序列

    • list
    • bytearray
    • array.array
    • collections.deque
    • memoryview

    不可变序列

    • tuple
    • str
    • bytes

    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是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类。

    相关文章

      网友评论

          本文标题:fluent python chapter2 note

          本文链接:https://www.haomeiwen.com/subject/pluxhxtx.html