python cookbook 3 翻译

发布时间:2019-09-23 17:09:11编辑:auto阅读(1875)

    自己买了个影印版,边翻边看边实践以期增强学习效果。计划是每日一个小片段,希望能坚持到底。

    P.S 翻得不好,请轻拍。。

    1 数据结构与算法

    1.1 将一个序列分离转换成多个变量

    问题:

       如果你有一个由N个元素组成的元组或序列并想将其分离成多个变量。


    解法:

       只要变量的数量与相关的结构匹配,任何序列(或可迭代的对象)皆能通过赋值操作分离成多个变量。

    新鲜的栗子~:(个人平台:win7 64位  python2.7.6)


    >>> p = (4, 5)

    >>> x, y = p

    >>> x

    4

    >>> y

    5

    >>>

    >>> data = [ 'ACME', 50, 91.1, (2012, 12, 21)]

    >>> name, shares, price, date = data

    >>> name

    'ACME'

    >>> date

    (2012, 12, 21)

    >>> name, shares, price, (year, mon, day) = data

    >>> name

    'ACME'

    >>> year

    2012

    >>> mon

    12

    >>> day

    21

    >>>

    变量的数量与相关的结构不匹配的例子

    >>> p = (4, 5)

    >>> x, y, z = p


    Traceback (most recent call last):

     File "<pyshell#14>", line 1, in <module>

       x, y, z = p

    ValueError: need more than 2 values to unpack

    >>>


    讨论:

       不光是元组,列表,但凡是可迭代的对象如strings对象,文件对象,可迭代对象,生成器对象,(撒花?)此法皆有效。

    又有栗子吃了


    >>> s = 'Hello'

    >>> a, b, c, d, e = s

    >>> a

    'H'

    >>> b

    'e'

    >>> e

    'o'

    >>>

    当你分离的时候,你有时候会想干掉某些元素。Python对此没有针对的语法,但是通常你可以通过使用可被抛弃的变量来实现。

    栗子!栗子!

    >>> data = [ 'ACME', 50, 91.1, (2012, 12, 21)]

    >>> _, shares, price, _ = data

    >>> shares

    50

    >>> price

    91.1

    >>>

    当然,你务必确保该变量名未在他处使用过。


关键字