<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 獲得更多資料歡迎進入[我的網站](http://rlovep.com/)或者 [csdn](http://blog.csdn.net/peace1213)或者[博客園](http://www.cnblogs.com/onepeace/) > 本節主要介紹字典,字典也成映射,時python中唯一內建的映射類型。更多詳細請點擊readmore。下面附有之前的文章; # 字典的介紹與作用 在元組和列表中,都是通過編號進行元素的訪問,但有的時候我們按名字進行數據甚至數據結構的訪問,在c++和java中有map的概念,也就是映射。同樣在python中也提供了內置的映射類型–字典。映射其實就是一組鍵(key)和值(value)以及之間的映射函數。鍵可以是數字、字符串甚至是元組。 **字典類型與序列類型的區別:** 1.存取和訪問數據的方式不同。 2.序列類型只用數字類型的鍵(從序列的開始按數值順序索引); 3.映射類型可以用其他對象類型作鍵(如:數字、字符串、元祖,一般用字符串作鍵),和序列類型的鍵不同. 4.映射類型的鍵直接或間接地和存儲數據值相關聯。 5.映射類型中的數據是無序排列的。這和序列類型是不一樣的,序列類型是以數值序排列的。 6.映射類型用鍵直接“映射”到值。 # 創建字典 簡單地說字典就是用大括號包裹的鍵值對的集合。 **1可以通過一下方式創建:** 字典由多個鍵及與其對應的值構成的對組成。每個鍵和它的值之間用冒號(:)隔開,項之間用逗號(,)隔開,而整個字典是由一對大括號括起來。 字典中的鍵必須是唯一的,而值可以不唯一。 ~~~ >>> student_id={'peace':'201421014960','nick_peace':'201421014970','nicl_peace2':'201421014980'} >>> student_id {'peace': '201421014960', 'nicl_peace2': '201421014980', 'nick_peace': '201421014970'} >>> student_id['peace'] '201421014960' ~~~ **2可以通過dict函數創建** 用 dict 函數,通過其他映射(比如其他字典)或者(鍵,值)這樣的序列對建立字典。 ~~~ #通過序列創建 >>> items=[('peace','201421014960'),('nick_peace','201421014970')] >>> student_id=dict(items) >>> student_id['nick_peace'] '201421014970' >>> #也可以通過關鍵字參數來創建 >>> student_id=dict(peace='201421014960',age=23) >>> student_id {'age': 23, 'peace': '201421014960'} >>> ~~~ # 字典基本操作 ##字典的基本行為在很多方面與序列類似: (1)len(d) 返回 d 中項(鍵-值對)的數量 (2)d[k] 返回關聯到鍵 k 上的值 (3)d[k] = v 將值 v 關聯到鍵 k 上 (4)del d[k] 刪除鍵為 k 的項 (5)k in d 檢查 d 中是否有含有鍵為 k 的項 ~~~ >>> student_id={'peace':'201421014960','nick_peace':'201421014970','nicl_peace2':'201421014980'} >>> len(student_id) 3 >>> student_id['nick_peace'] '201421014970' >>> student_id['nick_peace']=2014 >>> student_id {'peace': '201421014960', 'nicl_peace2': '201421014980', 'nick_peace': 2014} >>> del student_id['nick_peace'] >>> student_id {'peace': '201421014960', 'nicl_peace2': '201421014980'} >>> 'peace' in student_id True >>> 'nick_peace' in student_id False ~~~ ### 注意: 盡管字典和列表有很多特性相同,但也有下面一些重要的區別。 (1)鍵類型:字典的鍵不一定為整型數據(但也可能是),也可能是其他不可變類型,比如浮點型(實型)、字符串或者元組。 (2)自動添加:即使那個鍵起初在字典中并不存在,也可以為它分配一個值,這樣字典就會建立新的項。 (3)成員資格:表達式 k in d (d 為字典) 查找的是鍵,而不是值。 例如: ~~~ >>> item=[] >>> item[1]=23 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range >>> item={} >>> item[1]=23 >>> item {1: 23} >>> ~~~ # 字典的格式化字符串 在每個轉換(conversion specifier)中的 % 字符后面,可以加上用圓括號括起來的鍵,后面再跟上其他說明元素。 ~~~ >>> student_id={'peace':'201421014960','nick_peace':'201421014970','nicl_peace2':'201421014980'} >>> "peace's student id is %(peace)s." % student_id "peace's student id is 201421014960." >>> ~~~ 只要所有給出的鍵都能在字典中找到,就可以獲得任意數量的轉換說明符。這類字符串格式化在模板系統中非常有用: ~~~ >>> template = '''<html> ... ... <head><title>%(title)s</title></head> ... ... <body> ... ... <h1>%(title)s</h1> ... ... <p>%(text)s</p> ... ... </body>''' >>> data = {'title':'My Home Page', 'text':'Welcome to my home page!'} >>> print(template % data) <html> ... <head><title>My Home Page</title></head> ... <body> ... <h1>My Home Page</h1> ... <p>Welcome to my home page!</p> ... </body> >>> ~~~ # 字典方法 就像其他內建類型一樣,字典也有方法,這些方法非常有用;下面對一些方法進行講解 ### clear方法 clear 方法清除字典中所有的項。這是個原地操作,所以無返回值(或者說返回 None)。 ~~~ >>> student_id={'peace':'201421014960','nick_peace':'201421014970','nicl_peace2':'201421014980'} >>> student_id.clear() >>> student_id {} >>> ~~~ ### copy方法 copy 方法返回一個具有相同鍵-值對的新字典(這個方法實現的是淺復制(shallow copy),因為值本身就是相同的,而不是副本)。 ~~~ >>> student_id={'peace':'201421014960','nick_peace':'201421014970','pp':['p1','p2','p3']} >>> stucopy=student_id.copy() >>> stucopy['peace']='22222' >>> stucopy['pp'].remove('p2') >>> stucopy {'peace': '22222', 'nick_peace': '201421014970', 'pp': ['p1', 'p3']} >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p3'], 'nick_peace': '201421014970'} >>> ~~~ 上面,當在 y 中替換值的時候,x 不受影響,但是,如果修改了某個值(原地修改,而不是替換),x 也會改變,因為同樣的值也存儲在原字典中。 避免這個問題的一種方法就是使用深復制( deep copy),復制其包含所有的值。可以使用 copy 模塊的 deepcopy 函數來完成操作。 ~~~ >>> from copy import deepcopy >>> student_id={'peace':'201421014960','nick_peace':'201421014970','pp':['p1','p2','p3']} >>> stucopy=deepcopy(student_id) >>> stucopy['peace']='22222' >>> stucopy['pp'].remove('p2') >>> stucopy {'peace': '22222', 'nick_peace': '201421014970', 'pp': ['p1', 'p3']} >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} ~~~ ### fromkeys方法 fromkeys 方法使用給定的鍵建立新的字典,每個鍵默認對應的值為 None。 ~~~ #空字典建立 >>> {}.fromkeys(['peace','nixk']) {'peace': None, 'nixk': None} #直接在所有字典的類型 dict 上面調用方法 >>> dict.fromkeys(['peace','nixk']) {'peace': None, 'nixk': None} #不想使用None作為默認值,也可以自己提供默認值。 >>> dict.fromkeys(['peace','nixk'],'(handsome)') {'peace': '(handsome)', 'nixk': '(handsome)'} ~~~ ### get方法 get方法和的d[key]類似 ~~~ #當使用 get 訪問一個不存在的鍵時,沒有任何異常,而得到了 None 值。 >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> print(student_id['pp']) ['p1', 'p2', 'p3'] >>> print(student_id['pp1']) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'pp1' >>> print(student_id.get('pp1')) None #可以定義“默認”返回值,替換 None: >>> print(student_id.get('pp1','N/A')) N/A #如果鍵存在,get用起來就像普通的字典查詢一樣。 >>> print(student_id.get('pp','N/A')) ['p1', 'p2', 'p3'] >>> ~~~ ### items方法 items 方法將所有的字典項以dict_items 方式返回,這些列表項中的每一項都來自于(鍵,值) ~~~ >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> student_id.items() dict_items([('peace', '201421014960'), ('pp', ['p1', 'p2', 'p3']), ('nick_peace', '201421014970')]) ~~~ ### keys方法 keys 方法將字典中的鍵以 dict_keys 形式返回。 ~~~ >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> student_id.keys() dict_keys(['peace', 'pp', 'nick_peace']) >>> ~~~ ### pop方法和popitem pop 方法用來獲得對應于給定鍵的值,然后將這個鍵-值對從字典中移除。 ~~~ >>> student_id {'peace': '201421014960', 'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> student_id.pop('peace') '201421014960' >>> student_id {'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> ~~~ popitem 彈出隨機的項和將這個鍵-值對從字典中移除。 ~~~ >>> student_id {'pp': ['p1', 'p2', 'p3'], 'nick_peace': '201421014970'} >>> student_id.popitem() ('pp', ['p1', 'p2', 'p3']) >>> student_id.popitem() ('nick_peace', '201421014970') >>> student_id {} >>> ~~~ ### setdefaut方法 setdefault 方法在某種程度上類似于 get 方法,就是能夠獲得與給定鍵相關聯的值,除此之外,setdefault 還能在字典中不含有給定鍵的情況下設定相應的鍵值。當鍵不存在的時候,setdefault 返回默認值并且相應地更新字典。如果鍵存在,那么就返回與其相應的值,但不改變字典。 ~~~ >>> d = {} >>> d.setdefault('name', 'N/A') 'N/A' >>> d {'name': 'N/A'} >>> d['name'] = 'Gumby' >>> d.setdefault('name', 'N/A') 'Gumby' >>> d {'name': 'Gumby'} ~~~ ### update方法 update 方法可以利用一個字典項更新另一個字典。 ~~~ >>> d={'peace':'2222222',"pp":111} >>> x={'peace':'201421014960'} >>> d.update(x) >>> d {'peace': '201421014960', 'pp': 111} >>> ~~~ ### value方法 values 方法以 dict_values 的形式返回字典中的值。 ~~~ >>> d {'peace': '201421014960', 'pp': 111} >>> d.values() dict_values(['201421014960', 111]) >>> ~~~ # 字典的遍歷 ### 遍歷字典的值 for value in adict.values(): ~~~ >>> d {'1': 2, '3': 4, '5': 6} >>> for i in d.values():print(str(i)) ... 2 4 6 >>> ~~~ ### 遍歷字典的鍵 for key in adict.keys(): ~~~ >>> d {'1': 2, '3': 4, '5': 6} >>> for i in d:print(str(i)) ... 1 3 5 >>> for i in d.keys():print(str(i)) ... 1 3 5 >>> ~~~ ### 遍歷字典的項 for item,value in adict.items(): ~~~ >>> d {'1': 2, '3': 4, '5': 6} >>> for key,values in d.items():print(str(key)+","+str(values)) ... 1,2 3,4 5,6 >>> ~~~ 字典就講到這里; #### 相關鏈接: [python3入門之類](http://rlovep.com/2015/09/23/python3%E5%85%A5%E9%97%A8%E4%B9%8B%E7%B1%BB/) [python3入門之函數](http://rlovep.com/2015/09/06/python3%E5%85%A5%E9%97%A8%E4%B9%8B%E5%87%BD%E6%95%B0/) [python3入門之循環](http://rlovep.com/2015/09/06/python3%E5%85%A5%E9%97%A8%E4%B9%8B%E5%BE%AA%E7%8E%AF/) [python3之if語句](http://rlovep.com/2015/08/05/python3%E4%B9%8Bif%E8%AF%AD%E5%8F%A5/) [python3入門之賦值語句介紹](http://rlovep.com/2015/08/03/python3%E5%85%A5%E9%97%A8%E4%B9%8B%E8%B5%8B%E5%80%BC%E8%AF%AD%E5%8F%A5%E4%BB%8B%E7%BB%8D/) [python3入門之print,import,input介紹](http://rlovep.com/2015/08/03/python3%E5%85%A5%E9%97%A8%E4%B9%8Bprint%EF%BC%8Cimport%EF%BC%8Cinput%E4%BB%8B%E7%BB%8D/) [python3入門之set](http://www.cnblogs.com/onepeace/p/4791578.html) [python3入門之字典](http://rlovep.com/2015/07/29/python3%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E5%85%B8/) [python3入門之字符串](http://rlovep.com/2015/07/28/python%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E7%AC%A6%E4%B8%B2/) [python3入門之列表和元組](http://rlovep.com/2015/07/14/python%E5%85%A5%E9%97%A8%E4%B9%8B%E5%88%97%E8%A1%A8%E5%92%8C%E5%85%83%E7%BB%84/) [python3入門之軟件安裝](http://rlovep.com/2015/07/14/python%E5%85%A5%E9%97%A8%E4%B9%8B%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85/) [python3爬蟲之入門和正則表達式](http://rlovep.com/2015/09/23/python3%E7%88%AC%E8%99%AB%E4%B9%8B%E5%85%A5%E9%97%A8%E5%92%8C%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看