常見資料型別(二)
阿新 • • 發佈:2022-03-04
字典 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