<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Python 字典 > 原文: [http://zetcode.com/lang/python/dictionaries/](http://zetcode.com/lang/python/dictionaries/) 在 Python 編程教程的這一部分中,我們將更詳細地介紹 Python 字典。 Python 字典是鍵-值對的容器。 它是可變的,可以包含混合類型。 字典是無序集合。 Python 字典在其他語言中稱為關聯數組或哈希表。 字典中的鍵必須是不可變的對象,例如字符串或數字。 它們在字典中也必須是唯一的。 ## Python 字典創建 首先,我們展示如何創建 Python 字典。 `create_dict.py` ```py #!/usr/bin/env python # create_dict.py weekend = { "Sun": "Sunday", "Mon": "Monday" } vals = dict(one=1, two=2) capitals = {} capitals["svk"] = "Bratislava" capitals["deu"] = "Berlin" capitals["dnk"] = "Copenhagen" d = { i: object() for i in range(4) } print(weekend) print(vals) print(capitals) print(d) ``` 在示例中,我們以四種不同方式創建四個字典。 稍后,我們將這些字典的內容打印到控制臺。 ```py weekend = { "Sun": "Sunday", "Mon": "Monday" } ``` 我們使用字典字面值表示法創建周末字典。 鍵值對用大括號括起來。 兩對之間用逗號分隔。 一對的第一個值是鍵,后跟一個冒號和一個值。 `"Sun"`字符串是鍵,`"Sunday"`字符串是值。 ```py vals = dict(one=1, two=2) ``` 可以使用`dict()`函數創建字典。 ```py capitals = {} capitals["svk"] = "Bratislava" capitals["deu"] = "Berlin" capitals["dnk"] = "Copenhagen" ``` 第三種方法是創建一個空的大寫字典。 三對將添加到字典中。 鍵位于方括號內,值位于分配的右側。 ```py d = { i: object() for i in range(4) } ``` 使用字典推導式來創建字典。 理解分為兩個部分。 第一部分是`i: object()`表達式,該表達式在循環的每個循環中執行。 第二部分是`for i in range(4)`循環。 字典推導式將創建具有四對的字典,其中鍵為數字 0、1、2 和 3,值為簡單對象。 ```py $ ./create_dict.py {'Sun': 'Sunday', 'Mon': 'Monday'} {'two': 2, 'one': 1} {'svk': 'Bratislava', 'dnk': 'Copenhagen', 'deu': 'Berlin'} {0: <object object at 0xb76cb4a8>, 1: <object object at 0xb76cb4b0>, 2: <object object at 0xb76cb4b8>, 3: <object object at 0xb76cb4c0>} ``` 這是示例輸出。 ## Python 字典推導式 字典理解是一種基于現有字典創建字典的語法結構。 ```py D = { expression for variable in sequence [if condition] } ``` 字典推導式放在兩個大括號之間; 它包含三個部分:`for`循環,條件和表達式。 在`for`循環中,我們瀏覽了字典。 可選的`if`條件指定必須滿足的條件。 最后,對表達式進行求值。 該表達式從滿足條件的輸入序列成員中產生輸出字典的元素。 `comprehension.py` ```py #!/usr/bin/env python # comprehension.py capitals = { "Bratislava": 424207, "Vilnius": 556723, "Lisbon": 564657, "Riga": 713016, "Jerusalem": 780200, "Warsaw": 1711324, "Budapest": 1729040, "Prague": 1241664, "Helsinki": 596661, "Yokyo": 13189000, "Madrid": 3233527 } capitals2 = { key:val for key, val in capitals.items() if val < 1000000 } print(capitals2) ``` 在示例中,我們從現有字典創建一個新字典。 ```py capitals = { "Bratislava": 424207, "Vilnius": 556723, "Lisbon": 564657, "Riga": 713016, "Jerusalem": 780200, "Warsaw": 1711324, "Budapest": 1729040, "Prague": 1241664, "Helsinki": 596661, "Yokyo": 13189000, "Madrid": 3233527 } ``` 我們有一個大寫的字典。 鍵是大寫的,而人口就是值。 ```py capitals = { key:val for key, val in capitals.items() if val < 1000000 } ``` 使用字典推導式來創建新字典。 它包含人口少于一百萬的首都。 ```py $ ./comprehension.py {'Bratislava': 424207, 'Vilnius': 556723, 'Jerusalem': 780200, 'Riga': 713016, 'Lisbon': 564657, 'Helsinki': 596661} ``` 這些首都的人口少于一百萬。 ## Python 字典的基本操作 以下示例顯示了使用 Python 字典的一些基本操作。 `basics.py` ```py #!/usr/bin/env python # basics.py basket = { 'oranges': 12, 'pears': 5, 'apples': 4 } basket['bananas'] = 5 print(basket) print("There are {0} various items in the basket".format(len(basket))) print(basket['apples']) basket['apples'] = 8 print(basket['apples']) print(basket.get('oranges', 'undefined')) print(basket.get('cherries', 'undefined')) ``` 我們有一個裝著不同水果的籃子。 我們對購物籃字典執行一些操作。 ```py basket = { 'oranges': 12, 'pears': 5, 'apples': 4 } ``` 將創建籃子字典。 它最初具有三個鍵值對。 ```py basket['bananas'] = 5 ``` 將創建一個新的配對。 `'bananas'`字符串是鍵,`5`整數是值。 ```py print("There are {0} various items in the basket".format(len(basket))) ``` `len()`函數給出字典中的對數。 ```py print(basket['apples']) ``` `"apples"`鍵的值會打印到終端上。 ```py basket['apples'] = 8 ``` `"apples"`鍵的值被修改。 設置為數字 8。 ```py print(basket.get('oranges', 'undefined')) ``` `get()`方法檢索指定鍵的值。 如果沒有這樣的鍵,則返回該方法的第二個參數。 ```py print(basket.get('cherries', 'undefined')) ``` 該行返回`'undefined'`。 籃子里沒有櫻桃。 ```py $ ./basics.py {'bananas': 5, 'pears': 5, 'oranges': 12, 'apples': 4} There are 4 various items in the basket 4 8 12 undefined ``` 這是示例輸出。 ## Python 字典`fromkeys`和`setdefault` 下一個示例介紹了兩種字典方法:`fromkeys()`和`setdefault()`。 `fruits.py` ```py #!/usr/bin/env python # fruits.py basket = ('oranges', 'pears', 'apples', 'bananas') fruits = {}.fromkeys(basket, 0) print(fruits) fruits['oranges'] = 12 fruits['pears'] = 8 fruits['apples'] = 4 print(fruits.setdefault('oranges', 11)) print(fruits.setdefault('kiwis', 11)) print(fruits) ``` `fromkeys()`方法從列表創建一個新字典。 如果存在鍵,則`setdefault()`方法將返回一個值。 否則,它將插入具有指定默認值的鍵并返回該值。 ```py basket = ('oranges', 'pears', 'apples', 'bananas') ``` 我們有一個字符串列表。 從該列表中將構建新的字典。 ```py fruits = {}.fromkeys(basket, 0) ``` `fromkeys()`方法創建一個新的字典,列表項將作為關鍵字。 每個鍵都將初始化為 0。請注意`fromkeys()`方法是一個類方法,需要調用該類名,在本例中為`{}`。 ```py fruits['oranges'] = 12 fruits['pears'] = 8 fruits['apples'] = 4 ``` 在這里,我們向`fruits`字典添加一些值。 ```py print(fruits.setdefault('oranges', 11)) print(fruits.setdefault('kiwis', 11)) ``` 第一行將`12`打印到終端。 `'oranges'`鍵存在于字典中。 在這種情況下,該方法將返回其值。 在第二種情況下,鍵尚不存在。 一對新的`'kiwis': 11`被插入字典。 值`11`被打印到控制臺。 ```py $ ./fruits.py {'bananas': 0, 'pears': 0, 'oranges': 0, 'apples': 0} 12 11 {'kiwis': 11, 'bananas': 0, 'pears': 8, 'oranges': 12, 'apples': 4} ``` 當啟動`fruits.py`腳本時,我們會收到此輸出。 ## Python 字典更新方法 下一個代碼示例演示如何使用`update()`方法添加兩個 Python 字典。 `domains.py` ```py #!/usr/bin/env python # domains.py domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary"} domains2 = { "us": "United States", "no": "Norway" } domains.update(domains2) print(domains) ``` 兩個字典通過`update()`方法結合在一起。 ```py domains.update(domains2) ``` 使用`update()`方法將`domains2`字典添加到域字典中。 ```py $ ./domains.py {'sk': 'Slovakia', 'de': 'Germany', 'no': 'Norway', 'us': 'United States', 'hu': 'Hungary'} ``` 結果顯示所有值。 ## Python 從字典中刪除項目 現在我們展示如何從字典中刪除一對。 `removing.py` ```py #!/usr/bin/env python # removing.py items = { "coins": 7, "pens": 3, "cups": 2, "bags": 1, "bottles": 4, "books": 5 } print(items) item = items.pop("coins") print("Item having value {0} was removed".format(item)) print(items) del items["bottles"] print(items) items.clear() print(items) ``` 項目字典有六個鍵值對。 我們將從該字典中刪除配對。 ```py item = items.pop("coins") print("Item having value {0} was removed".format(item)) ``` `pop()`方法刪除具有指定鍵的一對; 它返回已刪除鍵的值。 ```py del items["bottles"] ``` `del`關鍵字從項目字典中刪除`"bottles": 4`對。 ```py items.clear() ``` `clear()`方法清除字典中的所有項目。 ```py $ ./removing.py {'bags': 1, 'pens': 3, 'coins': 7, 'books': 5, 'bottles': 4, 'cups': 2} Item having value 7 was removed {'bags': 1, 'pens': 3, 'books': 5, 'bottles': 4, 'cups': 2} {'bags': 1, 'pens': 3, 'books': 5, 'cups': 2} {} ``` 這是示例輸出。 ## Python 字典鍵和值 Python 字典由鍵值對組成。 `keys()`方法從字典中返回鍵列表。 `values()`方法創建一個值列表。 并且`items()`方法返回鍵值元組的列表。 `keys_values.py` ```py #!/usr/bin/env python # keys_values.py domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "us": "United States", "no": "Norway" } print(domains.keys()) print(domains.values()) print(domains.items()) print("de" in domains) print("cz" in domains) ``` 我們演示了上述方法。 我們還檢查`in`關鍵字是否存在鍵。 ```py print(domains.keys()) ``` 我們使用`keys()`方法打印`domains`字典的鍵列表。 ```py print(domains.values()) ``` 我們使用`values()`方法打印`domains`字典的值列表。 ```py print(domains.items()) ``` 最后,我們使用`items()`方法打印域字典的鍵值元組列表。 ```py print("de" in domains) print("cz" in domains) ``` 使用`in`關鍵字,我們檢查`domains`字典中是否存在`"de"`和`"cz"`鍵。 返回值為`True`或`False`。 ```py $ ./keys_values.py ['sk', 'de', 'no', 'us', 'hu'] ['Slovakia', 'Germany', 'Norway', 'United States', 'Hungary'] [('sk', 'Slovakia'), ('de', 'Germany'), ('no', 'Norway'), ('us', 'United States'), ('hu', 'Hungary')] True False ``` 示例的輸出。 ## Python 字典循環 遍歷字典是常見的編程工作。 這可以通過`for`關鍵字完成。 `looping.py` ```py #!/usr/bin/env python # looping.py domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "us": "United States", "no": "Norway" } for key in domains: print(key) for val in domains.values(): print(val) for k, v in domains.items(): print(": ".join((k, v))) ``` 在該示例中,我們遍歷`domains`字典以打印鍵,值以及字典的鍵和值。 ```py for key in domains: print(key) ``` 此循環將打印字典的所有鍵。 ```py for val in domains.values(): print(val) ``` 第二個循環打印字典的所有值。 ```py for k, v in domains.items(): print(": ".join((k, v))) ``` 在第三個循環中,將打印所有鍵和值。 ```py $ ./looping.py sk de no us hu Slovakia Germany Norway United States Hungary sk: Slovakia de: Germany no: Norway us: United States hu: Hungary ``` 示例的輸出。 ## Python 字典成員性測試 使用`in`和`not in`運算符,我們可以檢查字典中是否存在鍵。 `membership.py` ```py #!/usr/bin/env python # membership.py domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "us": "United States", "no": "Norway" } key = "sk" if key in domains: print("{0} is in the dictionary".format(domains[key])) ``` 在示例中,我們使用`in`運算符檢查國家/地區是否在字典中。 ## Python 字典排序 Python 字典是無序的。 這也意味著它們不能像 Python 列表那樣排序。 程序員可以創建 Python 字典的排序表示形式。 在本節中,我們展示了幾種創建排序輸出的方法。 程序員可能希望以正常或相反的順序對數據進行排序。 他們可以按鍵或按值對數據進行排序。 `simple_sort.py` ```py #!/usr/bin/env python # simple_sort.py items = { "coins": 7, "pens": 3, "cups": 2, "bags": 1, "bottles": 4, "books": 5 } kitems = list(items.keys()) kitems.sort() for k in kitems: print(": ".join((k, str(items[k])))) ``` 第一個示例提供了最簡單的解決方案,以按鍵對數據進行排序。 ```py kitems = items.keys() kitems.sort() ``` 從字典中獲得鍵列表。 該列表使用`sort()`方法排序。 ```py for k in kitems: print(": ".join((k, str(items[k])))) ``` 在循環中,我們從字典中打印排序的鍵以及它們的值。 ```py $ ./simple_sort.py bags: 1 books: 5 bottles: 4 coins: 7 cups: 2 pens: 3 ``` 項目字典按其鍵排序。 內置的`sorted()`函數可以完成更有效的分類。 `sorting.py` ```py #!/usr/bin/env python # sorting.py items = { "coins": 7, "pens": 3, "cups": 2, "bags": 1, "bottles": 4, "books": 5 } for key in sorted(items.keys()): print("%{0}: {1}".format(key, items[key])) print("###############") for key in sorted(items.keys(), reverse=True): print("{0}: {1}".format(key, items[key])) ``` 在示例中,我們使用`sorted()`函數按其鍵升序和降序打印排序的數據。 ```py for key in sorted(items.keys()): print("%{0}: {1}".format(key, items[key])) ``` 在此`for`循環中,我們打印按升序排序的對。 `iteritems()`函數在字典的(鍵,值)對上返回一個迭代器。 ```py for key in sorted(items.keys(), reverse=True): print("{0}: {1}".format(key, items[key])) ``` 在第二個`for`循環中,數據按降序排序。 訂單類型由`reverse`參數控制。 ```py $ ./sorting.py bags: 1 books: 5 bottles: 4 coins: 7 cups: 2 pens: 3 ############### pens: 3 cups: 2 coins: 7 bottles: 4 books: 5 bags: 1 ``` `sorting.py`腳本的輸出。 在下一個示例中,我們將按項目的值對項目進行排序。 `sorting2.py` ```py #!/usr/bin/env python # sorting2.py items = { "coins": 7, "pens": 3, "cups": 2, "bags": 1, "bottles": 4, "books": 5 } for key, value in sorted(items.items(), key=lambda pair: pair[1]): print("{0}: {1}".format(key, value)) print("###############") for key, value in sorted(items.items(), key=lambda pair: pair[1], reverse=True): print("{0}: {1}".format(key, value)) ``` 該示例按值的升序和降序打印數據。 ```py for key, value in sorted(items.iteritems(), key=lambda (k,v): (v,k)): ``` 字典對按其值排序并打印到控制臺。 `key`參數具有一個函數,該函數指示如何對數據進行排序。 ```py $ ./sorting2.py bags: 1 cups: 2 pens: 3 bottles: 4 books: 5 coins: 7 ############### coins: 7 books: 5 bottles: 4 pens: 3 cups: 2 bags: 1 ``` 從輸出中我們可以看到,這次對按它們的值排序。 在 Python 教程的這一部分中,我們編寫了有關 Python 字典的文章。
                  <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>

                              哎呀哎呀视频在线观看