亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python基礎5-字典

系統 2104 0

python基礎5-字典

python基礎5-字典_第1張圖片

數據類型

字典

字典定義、創建

字典是一種可變容器類型,且可以存儲任意類型對象。字典和列表的最大的區別是字典強調的是“鍵值對”,key與value一一對應,字典中的存放順序并不重要,重要的是“鍵”和“值”的對應關系。在字典中,要求key是唯一的,且不可變的。所以字典的特點如下:

  • 查找速度快
  • key-value序對沒有順序
  • key鍵不可變且唯一

字典的創建,使用 {} ,每個鍵值對用 : 隔開,每對之間用 , 分割。還有使用dict和使用fromkeys的方法

            
              
                >>
              
              
                >
              
               d1 
              
                =
              
              
                {
              
              
                'key'
              
              
                :
              
              
                'value'
              
              
                }
              
              
                # 使用dict()初始化字典,其中鍵必須是字符串
              
              
                >>
              
              
                >
              
               d2 
              
                =
              
              
                dict
              
              
                (
              
              key
              
                =
              
              
                'value'
              
              
                )
              
              
                # 使用dict創建時,下面的情況會出現bug
              
              
                >>
              
              
                >
              
               key 
              
                =
              
              
                'name'
              
              
                >>
              
              
                >
              
               d3 
              
                =
              
              
                dict
              
              
                (
              
              key
              
                =
              
              
                'value'
              
              
                )
              
              
                # 這個代碼,原本我們是想輸出{'name':'value'},可以結果并不一樣,所以使用dict初始化的時候需要注意
              
              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              d3
              
                )
              
              
                {
              
              
                'key'
              
              
                :
              
              
                'value'
              
              
                }
              
              
                # 使用fromkeys方法初始化字典
              
              
                #初始化
              
              
                >>
              
              
                >
              
               d4 
              
                =
              
              
                {
              
              
                }
              
              
                .
              
              fromkeys
              
                (
              
              
                [
              
              
                'key1'
              
              
                ,
              
              
                'key2'
              
              
                ]
              
              
                )
              
              
                >>
              
              
                >
              
               d4

              
                {
              
              
                'key1'
              
              
                :
              
              
                None
              
              
                ,
              
              
                'key2'
              
              
                :
              
              
                None
              
              
                }
              
              
                >>
              
              
                >
              
               d5 
              
                =
              
              
                dict
              
              
                (
              
              
                )
              
              
                .
              
              fromkeys
              
                (
              
              
                [
              
              
                'key1'
              
              
                ,
              
              
                'key2'
              
              
                ]
              
              
                )
              
              
                >>
              
              
                >
              
               d5

              
                {
              
              
                'key1'
              
              
                :
              
              
                None
              
              
                ,
              
              
                'key2'
              
              
                :
              
              
                None
              
              
                }
              
              
                # 初始化并賦值
              
              
                >>
              
              
                >
              
               d6 
              
                =
              
              
                {
              
              
                }
              
              
                .
              
              fromkeys
              
                (
              
              
                [
              
              
                'key1'
              
              
                ,
              
              
                'key2'
              
              
                ]
              
              
                ,
              
              
                'value'
              
              
                )
              
              
                >>
              
              
                >
              
               d6

              
                {
              
              
                'key1'
              
              
                :
              
              
                'value'
              
              
                ,
              
              
                'key2'
              
              
                :
              
              
                'value'
              
              
                }
              
              
                # 也可以先初始化,然后動態地添加
              
              
                >>
              
               d7 
              
                =
              
              
                {
              
              
                }
              
              
                >>
              
              
                >
              
               d7
              
                [
              
              
                'key1'
              
              
                ]
              
              
                =
              
              
                'value1'
              
              
                >>
              
              
                >
              
               d7
              
                [
              
              
                'key2'
              
              
                ]
              
              
                =
              
              
                'value2'
              
              
                >>
              
              
                >
              
               d7

              
                {
              
              
                'key1'
              
              
                :
              
              
                'value1'
              
              
                ,
              
              
                'key2'
              
              
                :
              
              
                'value2'
              
              
                }
              
              
                # 使用zip函數把鍵列表和值列表打包成鍵值對一一對應的元組
              
              
                >>
              
              
                >
              
               d8 
              
                =
              
              
                dict
              
              
                (
              
              
                zip
              
              
                (
              
              
                [
              
              
                'key1'
              
              
                ,
              
              
                'key2'
              
              
                ]
              
              
                ,
              
              
                [
              
              
                'value1'
              
              
                ,
              
              
                'value2'
              
              
                ]
              
              
                )
              
              
                )
              
              
                >>
              
              
                >
              
               d8

              
                {
              
              
                'key1'
              
              
                :
              
              
                'value1'
              
              
                ,
              
              
                'key2'
              
              
                :
              
              
                'value2'
              
              
                }
              
              
                # 字典推導表達式
              
              
                >>
              
              
                >
              
               d9 
              
                =
              
              
                {
              
              x
              
                :
              
              x
              
                **
              
              
                2
              
              
                for
              
               x 
              
                in
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ]
              
              
                }
              
              
                >>
              
              
                >
              
               d9

              
                {
              
              
                1
              
              
                :
              
              
                1
              
              
                ,
              
              
                2
              
              
                :
              
              
                4
              
              
                ,
              
              
                3
              
              
                :
              
              
                9
              
              
                }
              
            
          

訪問、修改字典

字典和列表一樣,是一種存儲數據的容器;在列表中,可以通過下標索引來訪問元素,在字典中通過鍵來訪問它的對應值,即key:value;可以修改,添加等操作。

            
              
                >>
              
              
                >
              
               d1 
              
                =
              
              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                'code'
              
              
                :
              
              
                'python'
              
              
                }
              
              
                # 值訪問
              
              
                >>
              
              
                >
              
               d1
              
                [
              
              
                'type'
              
              
                ]
              
              
                'dict'
              
              
                # 內容添加
              
              
                >>
              
              
                >
              
               d1
              
                [
              
              
                1
              
              
                ]
              
              
                =
              
              
                2
              
              
                >>
              
              
                >
              
               d1

              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                'code'
              
              
                :
              
              
                'python'
              
              
                ,
              
              
                1
              
              
                :
              
              
                2
              
              
                }
              
              
                # 內容修改
              
              
                >>
              
              
                >
              
               d1
              
                [
              
              
                'code'
              
              
                ]
              
              
                =
              
              
                'java'
              
              
                >>
              
              
                >
              
               d1

              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                'code'
              
              
                :
              
              
                'java'
              
              
                ,
              
              
                1
              
              
                :
              
              
                2
              
              
                }
              
              
                # 刪除元素,還可以是用del刪除某個字典的key,或者刪除整個字典;使用clear() 清空這個字典
              
              
                >>
              
              
                >
              
               d1 
              
                =
              
              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                'code'
              
              
                :
              
              
                'python'
              
              
                ,
              
              
                1
              
              
                :
              
              
                2
              
              
                }
              
              
                >>
              
              
                >
              
               d1
              
                .
              
              pop
              
                (
              
              
                'code'
              
              
                )
              
              
                # d1的值為{'type': 'dict', 1: 2}
              
              
                >>
              
              
                >
              
              
                del
              
               d1
              
                [
              
              
                1
              
              
                ]
              
              
                # d1的值為{'type': 'dict'}
              
              
                >>
              
              
                >
              
               d1
              
                .
              
              clear
              
                (
              
              
                )
              
              
                # d1 = {}
              
              
                >>
              
              
                >
              
              
                del
              
               d1

              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              d1
              
                )
              
              
                # NameError: name 'd1' is not defined
              
              
                # 如果有兩個字典,可以使用update函數來更新其中某一個字典
              
              
                # 從下面代碼的結果上可以看出,如果d1中沒有d2的元素,則添加進來;如果有,則修改為d2中的值
              
              
                >>
              
              
                >
              
               d2 
              
                =
              
              
                {
              
              
                1
              
              
                :
              
              
                3
              
              
                ,
              
              
                2
              
              
                :
              
              
                4
              
              
                ,
              
              
                5
              
              
                :
              
              
                6
              
              
                }
              
              
                >>
              
              
                >
              
               d1
              
                .
              
              update
              
                (
              
              d2
              
                )
              
              
                >>
              
              
                >
              
               d1

              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                1
              
              
                :
              
              
                3
              
              
                ,
              
              
                2
              
              
                :
              
              
                4
              
              
                ,
              
              
                5
              
              
                :
              
              
                6
              
              
                }
              
            
          

字典的遍歷

            
              d 
              
                =
              
              
                {
              
              
                'a'
              
              
                :
              
              
                1
              
              
                ,
              
              
                'b'
              
              
                :
              
              
                2
              
              
                ,
              
              
                'c'
              
              
                :
              
              
                3
              
              
                }
              
              
                # 遍歷key值
              
              
                for
              
               key 
              
                in
              
               d
              
                :
              
              
                print
              
              
                (
              
              
                "{} : {}"
              
              
                .
              
              
                format
              
              
                (
              
              key
              
                ,
              
               d
              
                [
              
              key
              
                ]
              
              
                )
              
              
                )
              
              
                # 該方法和上面的方法是等價的
              
              
                for
              
               key 
              
                in
              
               d
              
                .
              
              keys
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "{} : {}"
              
              
                .
              
              
                format
              
              
                (
              
              key
              
                ,
              
               d
              
                [
              
              key
              
                ]
              
              
                )
              
              
                )
              
              
                # 遍歷value值
              
              
                for
              
               value 
              
                in
              
               d
              
                .
              
              values
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              value
              
                )
              
              
                # 遍歷字典項
              
              
                for
              
               key_value 
              
                in
              
               d
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              key_value
              
                )
              
              
                # 遍歷字典健值
              
              
                for
              
               key
              
                ,
              
              value 
              
                in
              
               d
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "{} : {}"
              
              
                .
              
              
                format
              
              
                (
              
              key
              
                ,
              
               value
              
                )
              
              
                )
              
            
          

字典的排序

字典的排序有兩種方法,第一種是 list()函數和字典的keys()方法相結合,對產生的list排序,然后輸出。第二種方法是使用內置函數sorted()進行排序,會返回排序好的鍵。

            
              
                # 使用list()函數,和keys()相結合
              
              
d 
              
                =
              
              
                {
              
              
                1
              
              
                :
              
              
                2
              
              
                ,
              
              
                7
              
              
                :
              
              
                8
              
              
                ,
              
              
                3
              
              
                :
              
              
                4
              
              
                ,
              
              
                5
              
              
                :
              
              
                6
              
              
                }
              
              
d_key 
              
                =
              
              
                list
              
              
                (
              
              d
              
                .
              
              keys
              
                (
              
              
                )
              
              
                )
              
              
d_key
              
                .
              
              sort
              
                (
              
              
                )
              
              
                for
              
               key 
              
                in
              
               d_key
              
                :
              
              
                print
              
              
                (
              
              key
              
                ,
              
               d
              
                [
              
              key
              
                ]
              
              
                )
              
              
                # 使用sorted函數
              
              
                for
              
               key 
              
                in
              
              
                sorted
              
              
                (
              
              d
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              key
              
                ,
              
               d
              
                [
              
              key
              
                ]
              
              
                )
              
            
          

判斷鍵值是否存在

在python2中判斷一個字典中某個key是否存在可以使用has_key和in兩種方法,但是在python3中只有in方法,

            
              
                >>
              
              
                >
              
               d 
              
                =
              
              
                {
              
              
                'type'
              
              
                :
              
              
                'dict'
              
              
                ,
              
              
                'code'
              
              
                :
              
              
                'java'
              
              
                ,
              
              
                1
              
              
                :
              
              
                2
              
              
                }
              
              
                >>
              
              
                >
              
              
                'code'
              
              
                in
              
               d

              
                True
              
              
                >>
              
              
                >
              
              
                3
              
              
                in
              
               d

              
                False
              
            
          

字典中get()方法

有這樣一種情況,我們想獲取字典中的某一個值,但是有不確定它是否存在,那么如果直接寫 dict[key] 肯定是不妥當的,那么只能是先判讀,然后在輸出。這樣寫是可以的,但是在python中提供了一種方法 get(key, default=None) ,即若果存在直接輸出結果,如果不存在,則輸出為default的值。

            
              
                # 獲取字典中的值
              
              
d 
              
                =
              
              
                {
              
              
                'code'
              
              
                :
              
              
                'python'
              
              
                }
              
              
                if
              
              
                'name'
              
              
                in
              
               d
              
                :
              
              
                print
              
              
                (
              
              d
              
                [
              
              
                'name'
              
              
                ]
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                'default'
              
              
                )
              
              
                # get()替代 if ... else ...
              
              
                print
              
              
                (
              
              d
              
                .
              
              get
              
                (
              
              
                'name'
              
              
                ,
              
              
                'default'
              
              
                )
              
              
                )
              
            
          

字典和列表的不同

  • 從創建方式上,列表使用的是方括號,字典使用的是花括號。
  • 字典里的對象是無序的,通過key-value來表示一種映射關系;列表中的元素是有序的,可以通過序號直接獲取元素,或者通過切片操作獲取多個元素。
  • 相對而言,字典更耗費空間,因為需要維護key。
  • list隨著數量的正常增長要想查找元素的時間復雜度為O(n), dict不隨數量而增長而變化,時間負責都為O(1)

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人精品一区二区三区校园激情 | 全免费a级毛片免费看视频免 | 在线精品视频成人网 | 亚洲精品自拍视频 | 久久一本精品 | 精品久久久久久久久久久 | 91精品国产品国语在线不卡 | 亚洲桃色视频 | 国产成人久久精品一区二区三区 | 亚洲精品国产第一区二区图片 | 久久午夜激情 | 亚洲精品福利在线观看 | 欧美国产一区二区三区 | 午夜看毛片 | 精品九九久久国内精品 | 亚洲乱码在线播放 | 国产精品_国产精品_国产精品 | 99精品小视频| 妖精视频在线看免费视频 | 一区二区三区在线观看免费 | 久久亚洲精品一区成人 | 天天躁夜夜躁很很躁麻豆 | 91私拍 | 日韩视频中文字幕 | 欧美综合专区 | 中文字幕一区二区三区亚洲精品 | 国产激情久久久久久影院 | 久久精品视频大全 | 国产精品欧美久久久久天天影视 | 国产1区2区3区在线观看 | 亚洲人jizz | 国产精品久久久久久久久免费 | 99热这里只有精品免费国产 | 日本欧美久久久久免费播放网 | 精品国产午夜久久久久九九 | 2021国内精品久久久久影院 | 国产成人啪一区二区 | 国产成人性毛片aaww | 久久好看视频 | 精品一区二区三区18 | 国产精品9999 |