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

>>>

當然,你務必確保該變量名未在他處使用過。


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