前言
本文記錄了對于Python的數據類型中元祖(Tuple)和字典(Dict)的一些認識,以及部分內置方法的介紹。下面話不多說,來看看詳細的介紹吧。
元祖 Tuple
特點:元祖內的數據不可變
一個元素的定義:T = (1,)
>>> T=(1,)>>> type(T)<type 'tuple'>
特殊的元祖:”可變”的元祖
>>> T=(1,2,3,[1,2,3])>>> T[3][2] = 'vimiix'>>> T(1, 2, 3, [1, 2, 'vimiix'])
看上去元祖發生了變化,但真正變化的是[1,2,3]這個列表內的元素發生了變化,但是這個列表在T這個元祖中的內存地址是沒有改變的。
結論:實際是元祖的元素包含了可變的元素,但是元祖中元素的內存地址沒有變,所以所謂的元祖不可變是指元素指向的內存地址是不變
字典 Dict
特點:
1、字典是Python中唯一的映射類型
2、字典的鍵(KEY)必須是不可變的對象—>因為字典在計算機中是通過Hash算法存儲的,Hash的特點是由KEY來計算存儲的,如果KEY可變,將會導致數據混亂。
>>> D = {1:3,'vimiix':88}>>> type(D)<type 'dict'>
>>> D={[1,2,3]:100}Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> D={[1,2,3]:100}TypeError: unhashable type: 'list' (這里提示list是不能被Hash計算的數據類型,因為list是可變的數據類型)>>>
由此錯誤可以看出,字典的鍵只能使用不可變的對象(元祖是可以的),但是對于字典的值沒有此要求
鍵值對用冒號‘:'分割,每個對之間用逗號‘,'分開,所有這些用花括號‘{}'包含起來
字典中的鍵值對是沒有順序的,故不可以用索引訪問,只可以通過鍵取得所對應的值
拓展:如果定義的過程中,出現相同的鍵,最后存儲的時候回保留最后的一個鍵值對)
>>> D= {1:2,1:3}>>> D{1: 3}
創建與訪問
第一種創建方式:直接通過花括號包含鍵值對來創建
第二種創建方式:利用內置函數dict()
來創建,注意!dict()
括號內只能有一個參數,要把所有的鍵值對括起來
(1)
>>> D =dict((1,2),(3,4),(5,6))Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> D =dict((1,2),(3,4),(5,6))TypeError: dict expected at most 1 arguments, got 3>>> D =dict(((1,2),(3,4),(5,6)))>>> D{1: 2, 3: 4, 5: 6}
(2)還可以指定關鍵字參數
>>> D=dict(vimiix = 'VIMIIX')>>> D{'vimiix': 'VIMIIX'}
新聞熱點
疑難解答