python cookbook 3 翻译

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

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

>>>

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章