1. 程式人生 > 其它 >常見資料型別(二)

常見資料型別(二)

字典 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”,意為元組專案內容不支援元素更改。

布林值

  1. 布林值只有 True 和 False 兩種狀態
  2. 用來描述事物是否可行、對錯的,主要用於邏輯判斷
  3. 所有的資料在python中進行邏輯判斷是都會被轉換成布林值
    0  None 空列表、空字串、空字典……預設布林值都是False
    其餘情況都是True
    涉及布林值的變數名命名一般用is開頭 
    例:is_right = True