今天抽空學習python,對python的元組、列表、字典,參考地址:http://yangsq.iteye.com/blog/128508
感覺python的函數用法挺靈活的,和c、php的用法不太一樣,和js倒是挺像的。
在照着操作時,我發現一個很神奇的現象:
>>> t = (1, 3, 'b')
>>> q = t + ((3, 'abc'))
>>> q
(1, 3, 'b', 3, 'abc')
這里我預料的應該是(1, 3, 'b', (3, 'abc')),但是結果卻是(1, 3, 'b', 3, 'abc'),剛開始我猜測python是把所有的元素都提取出來重新按原順序組合。然后我又試了一下:
>>> q = t + ((3, 'abc'), '3')
>>> q
(1, 3, 'b', (3, 'abc'), '3')
看來猜測錯了,那為什么q = t + ((3, 'abc'))就把元組拆分了呢,我又試了一下:
>>> q = t + ((3, 'abc', ('a')))
>>> q
(1, 3, 'b', 3, 'abc', 'a')
python又把元素里的元組里的(’a‘)去掉了(),為了驗證我的想法,我進一步測試:
>>> q = t + ((3, 'abc', ('a', 'ab')))
>>> q
(1, 3, 'b', 3, 'abc', ('a', 'ab'))
看來結果已經很明了了,在對元組進行+操作時,python會自動對被加的元組進行解析,在保持原元組結構的前提下,把它解析成最簡單的元組進行相加,即把只有單一元素的多重元組去括號。
那么,如果我不想讓python在+操作時把()去掉呢,那么這樣操作就行了:
>>> q = t + ((3, 'abc'),)
>>> q
(1, 3, 'b', (3, 'abc'))