自己買了個影印版,邊翻邊看邊實踐以期增強學習效果。計劃是每日一個小片段,希望能堅持到底。
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
>>>
當然,你務必確保該變量名未在他處使用過。