常見數據類型(二)
- 2022 年 3 月 4 日
- 筆記
字典 dict
字典是能夠精準儲存資訊的數據類型
'''形式是用花括弧括起來的多個K:V鍵值對。鍵值對之間用逗號隔開
K;V鍵值對里的V是指任意類型的真實數據,K是對V的描述性資訊,一般是字元串
'''
例如:info = { 'user_name':'oliver', 'age':23, 'hobby':'games', 'job':'student'}
'''其中user—name、age、hobby、job是K鍵,而oliver、23、games、 student是V的真實數據'''
附:詞典內部的元素是無序的,所以無法進行索引取值。我們想訪問詞典里的資訊的時候可以通過K鍵進行訪問。例:name_info = info[‘age’]
info = {'user_name':'oliver', 'age': 23, 'hobby': 'game', 'job': 'student'} name_info = info['age'] print(name_info)
以上程式碼就是訪問列表info里的K鍵為’age’的數據,運行結果如下圖

字典與列表多層嵌套的解決方式
問題如下:請在以下程式碼中取出睢陽區
data = {
'name': 'oliver',
'age': 18,
'hobby': 'games',
'add': {'河南':
{'鄭州': '金水',
'開封': '中牟',
'商丘': [
'睢陽區',
'梁園區'
]
},
'湖北': '武漢'}
}
解釋:乍一看這個程式碼符號很多,有列表類數據,也有字典類數據。接下來我們先來逐層拆解
dict1 = data['add'] # 取鍵add對應的值{'河南': {'鄭州': '金水', '開封': '中牟', '商丘': ['睢陽區', '梁園區'}, '湖北': '武漢'}
dict2 = dict1['河南'] # 索鍵河南對應的值 {'鄭州': '金水', '開封': '中牟', '商丘': ['睢陽區', '梁園區']}
dict3 = dict2['商丘'] # 取鍵商丘對應的值['睢陽區', '梁園區']
add_name = dict3[0] # 索引取值'睢陽區'
方式一:我們可以從外向內逐級拆解。
- 第一步觀察data這個大的字典內有4個K:V鍵值對元素:獲取add的數據賦給dict1
- 然後我們觀察這個dict1里有兩個鍵值對元素:獲取河南的數據賦值給dict2
- 然後觀察dict2里有三個鍵值對元素,獲取商丘的數據賦值給dict3

- 最後dict4是一個列表,有兩個元素,索引取值睢陽區賦值給add_name,這樣輸出最後的add_name就可以得到想要的『睢陽區』

上述訪問「睢陽區」的步驟太繁瑣了,可以整合以下上述步驟的一系列操作
方式二:直接採取多重訪問和索引取值的方式
add_name = data['add']['河南']['商丘'][0] # 從前往後依次訪問取值
# 依次是訪問data(字典)里的add(字典)的河南(字典)的商丘(列表)的睢陽區
也可以得到相同的運行結果

不常用數據類型
集合 set
這種類型的數據功能單一,主要被用於去重和關係運算
具體形式:
1. 用花括弧括起來
2. 內部可以存放多個任意類型元素
3. 並且元素之間用逗號分隔開
4. 與字典不同的是其內部元素不是K:V鍵值對
例:set_name = {1, 2, 'ok', 3.33}
附與字典類型數據相似,當花括弧里為空時,默認為是字典類型數據
元組 tuple
元組與列表幾乎一致,只不過形式的外部括弧列表是中括弧,元組是小括弧。而且元組內的元素不可以更改。
具體形式:
1. 小括弧括起來
2. 內部可儲存多個任意類型元素
3. 元素之間用逗號隔開
例:t = (1,2,3,4.5,'kk')
附:元組內元素不可更改的解釋
先不對元祖內數據進行更改,程式碼:
t1 = (11, 22, 33) # 定義一個元組t1
print(t1) # 輸出該元組
運行結果:

然後對元組內數據進行更改,程式碼:
“`python
t1 = (11, 22, 33) # 定義一個元組t1
t1[1] = 117 # 對元祖內的第二個數據進行更改
print(t1) # 輸出該元組
“`
運行結果:

更改資訊以後程式碼不能運行了,並且報錯資訊為「’tuple’ object does not support item assignment」,意為元組項目內容不支援元素更改。
布爾值
- 布爾值只有 True 和 False 兩種狀態
- 用來描述事物是否可行、對錯的,主要用於邏輯判斷
- 所有的數據在python中進行邏輯判斷是都會被轉換成布爾值
0 None 空列表、空字元串、空字典……默認布爾值都是False
其餘情況都是True
涉及布爾值的變數名命名一般用is開頭
例:is_right = True
