<strike id="rrvnz"></strike>

    <noframes id="rrvnz">
    <noframes id="rrvnz"><span id="rrvnz"><pre id="rrvnz"></pre></span><address id="rrvnz"></address>
    <address id="rrvnz"><nobr id="rrvnz"></nobr></address><noframes id="rrvnz">
      <em id="rrvnz"></em>

        首 頁IT知識庫翔宇問吧收藏內容
        當前位置:翔宇亭IT樂園IT知識庫Python

        Python中的字典類型:創建、訪問、修改、刪除與相關函數

        減小字體 增大字體 作者:本站  來源:本站整理  發布時間:2020-07-12 12:35:49

        Python中的字典類型是有鍵值對(key:value)構成的一種類型。Python字典可以存儲任何數據類型的數據。

        一、Python字典概述

        (1)Python字典是一種鍵-值對數據類型,一旦定義,其鍵不可以修改,但值可以修改;

        (2)Python字典中的鍵是唯一的,即一個字典中不允許有相同的鍵;

        (3)Python字典是一種無序的鍵-值集合,即像集合那樣,不能使用位置索引來訪問或修改字典中的鍵-值;

        (4)Python字典的鍵值放在一對花括號{}中,每個鍵值使用英文半角的逗號進行分隔;

        (5)既然Python字典的鍵是不可變的,那么就可以使用字符串數字元組來作為字典的鍵;

        (6)Python中的值可以為任何類型,也可以是None.

        二、定義字典

        字典的基本語法形式如下:

        d = { key1 : value1, key2 : value2 }

        下面舉例子來說明:

        >>> price = { "蘋果" : 8.9, "櫻桃" : 19.78, "桔子" : 6.5}
        >>> print(price)
        {'蘋果': 8.9, '櫻桃': 19.78, '桔子': 6.5}
        >>> 

        我們也可以使用字典構造函數 dict() 來創建一個字典。

        >>> dic1 = dict( name = '翔宇亭', age = 12, type ='互聯網')
        >>> print(dic1)
        {'name': '翔宇亭', 'age': 12, 'type': '互聯網'}
        >>> dic2 = dict([('name', '翔宇亭'), ('age', 12), ('type', '互聯網')])
        >>> print(dic2)
        {'name': '翔宇亭', 'age': 12, 'type': '互聯網'}
        >>> dic3 = dict({'name' : '翔宇亭', 'age' : 12, 'type' : '互聯網'})
        >>> print(dic3)
        {'name': '翔宇亭', 'age': 12, 'type': '互聯網'}
        >>> 

        以上在Python3.8.2中運行的情況如下圖所示:

        二、訪問字典中的值

        我們可以使用 字典名[鍵名] 的方式來訪問字典中的值。

        >>> dic1= {'nickname' : 'xiangyuting', 'account' : 'biye5u', 'regdate' : '2008-08-20'}
        >>> dic1['nickname']
        'xiangyuting'
        >>> dic1['regdate']
        '2008-08-20'
        >>> 

        如果企圖訪問不存在的鍵將會引發錯誤:

        >>> dic = { '1' : 'a', '2' : 'b', '3' : 'c'}
        >>> print(dic['4'])
        Traceback (most recent call last):
            File "<pyshell#17>", line 1, in <module>
                print(dic['4'])
        KeyError: '4'

        >>> 

        以上例子中可以看出,企圖訪問的鍵 '4' 在字典dic中不存在,引發 KeyError 錯誤,即訪問的鍵不存在。

        三、修改字典

        我們可以使用 字典名[鍵名] 的方式來修改某一個鍵值對的值,也可以為字典新增鍵值對。

        在實際操作中,如果鍵名在字典中存在,則修改其值,如果字典中不存在該鍵名,則執行新增操作,如下例所示。

        fruits = {1 : '蘋果', 2 : '梨', 3 : '荔枝'}
        print('原字典:' , fruits)
        fruits[4] = '西瓜'
        print('更新后:', fruits)
        fruits[3] = '葡萄'
        print('再次更新后:', fruits)

        執行結果

        原字典: {1: '蘋果', 2: '梨', 3: '荔枝'}
        更新后: {1: '蘋果', 2: '梨', 3: '荔枝', 4: '西瓜'}
        再次更新后: {1: '蘋果', 2: '梨', 3: '葡萄', 4: '西瓜'}

        四、刪除字典中的值

        在Python中可以使用del關鍵字刪除字典中的一個值或刪除字典的定義,也可以使用clear函數清空字典中的值。

        >>> word = { 'a' : "apple", 'b' : ' banana', 'c' : 'cherry'}
        >>> print(word)
        {'a': 'apple', 'b': ' banana', 'c': 'cherry'}
        >>> del word['b'# 刪除一個值
        >>> print(word)
        {'a': 'apple', 'c': 'cherry'}
        >>> word.clear()  # 清空字典中的值
        >>> print(word)
        {}
        >>> del word  # 刪除 word 的定義
        >>> print(word) # 將引發 NameError錯誤
        raceback (most recent call last):
            File "<pyshell#28>", line 1, in <module>
                print(word)
        NameError: name 'word' is not defined

        >>> 

        五、循環迭代字典

        我們可以使用for循環迭代訪問或處理字典中的值。

        1、使用items()方法返回字典的鍵-值對

        word = { 'a' : "apple", 'b' : 'banana', 'c' : 'cherry'}
        for k, v  in word.items():
            print(f'{k} = {v}')

        輸出結果

        a = apple
        b = banana
        c = cherry

        2、循環迭代字典中的鍵

        word = { 'a' : "apple", 'b' : 'banana', 'c' : 'cherry'}
        for k in word:
            print(f'{k} = {word[k]}')

        輸出結果

        a = apple
        b = banana
        c = cherry

        3、使用values()方法循環迭代字典中的值

        word = { 'a' : "apple", 'b' : 'banana', 'c' : 'cherry'}
        for v in word.values():
            print(v)

        輸出結果

        apple
        banana
        cherry

        六、in 或 not in 在字典中的運用

        可以使用 innot in 檢測一個字典中是否存在某個鍵。

        word = { 'a' : "apple", 'b' : 'banana', 'c' : 'cherry'}
        print('c' in word)
        print('d' not in word)
        print('a' not in word)

        輸出結果

        True
        True
        False

        七、字典操作的一些函數

        1、len()函數求字典中值的個數

        >>> word = { 'a' : "apple", 'b' : 'banana', 'c' : 'cherry'}
        >>> print(len(word))
        3
        >>> 

        2、values() 函數

        該函數返回字典中“鍵-值”中的所有值,然后可以使用迭代對值進行相關的處理。

        nums = {'num1' : 12, 'num2' : 45, 'num3' : 9}
        values = nums.values()
        sum = 0
        for v in values:
            sum += v
        print(f'sum = {sum}')

        輸出結果:

        sum = 66

        3、items() 函數

        items()函數可以獲取到字典中的所有鍵值對,并可以使用循環迭代進行處理。

        見本文上面五、1中的例子。

        4、pop(key[, default])函數

        該函數從字典中刪除指定 key 項,并返回其對應的值,如果字典中不存在key鍵,則返回default指定的值,如果key不存在,且未指定default的話,該函數將引發 KeyError 錯誤。

        nums = {'num1' : 12, 'num2' : 45, 'num3' : 9}
        v1 = nums.pop('num1')
        print(f'v1={v1},移除后nums = {nums}')
        v2 = nums.pop('num1', 'NA')
        print(f'v2={v2},nums={nums}')

        輸出結果:

        v1=12,移除后nums = {'num2': 45, 'num3': 9}
        v2=NA,nums={'num2': 45, 'num3': 9}

        5、dict.fromkeys(seq[, val])

        該函數使用seq給出的序列值為鍵,創建一個字典,字典中每個鍵對應的值由參數val給出,如果未提供 val 參數,則默認為 None.

        dic1 = dict.fromkeys((1, 2, 3), 'a')
        print(dic1)
        dic2 = dict.fromkeys(['1', '2', '3'])
        print(dic2)
        dic3 = dict.fromkeys({'1', '2', '3'}, 'NA')
        print(dic3)

        輸出結果:

        1: 'a', 2: 'a', 3: 'a'}
        {'1': None, '2': None, '3': None}
        {'3': 'NA', '1': 'NA', '2': 'NA'}

        6、get(key[, default])

        該函數將返回指定 key 所對應的值,如果字典中不包含 key ,則返回可選參數default給定的值,如果字典中不含 key,且未給定default參數時,函數直接返回None.

        dic1 = {'a' : 'apple', 'b' : 'banana', 'c' : 'cherry', 'd' : 'durian'}
        fr = dic1.get('a')
        print(fr)
        fr = dic1.get('e', 'NA')
        print(fr)
        fr = dic1.get('f')
        print(fr)

        運行結果:

        apple
        NA
        None

        7、keys()

        該函數返回字典中所有鍵的集合。

        dic1 = {'a' : 'apple', 'b' : 'banana', 'c' : 'cherry', 'd' : 'durian'}
        keys = dic1.keys()
        print(keys)
        for k in keys:
            print(f'{k} : {dic1[k]}')

        輸出結果:

        dict_keys(['a', 'b', 'c', 'd'])
        a : apple
        b : banana
        c : cherry
        d : durian

        8、popitem()

        該函數每次執行以元組的形式返回一個鍵值對的值,并將該值在原字典中移除。

        dic1 = {'a' : 'apple', 'b' : 'banana', 'c' : 'cherry', 'd' : 'durian'}
        while len(dic1) > 0:
            item = dic1.popitem()
            print(item)

        輸出結果:

        ('d', 'durian')
        ('c', 'cherry')
        ('b', 'banana')
        ('a', 'apple')

        9、setdefault(key[, default])

        該函數用于向列表中增加一個值,增加值的鍵是函數參數指定的 key,如果指定了參數default,則新增項的值為default,否則為None,函數同時會返回該鍵值所對應的值。如果原字典中已存在鍵為 key 的項,則該函數僅返回該鍵值所對應的值。

        dic1 = {'a' : 'apple', 'b' : 'banana', 'c' : 'cherry'}
        v = dic1.setdefault('p', 'pear')
        print("dic1=", dic1, ",v=", v)
        v = dic1.setdefault('g')
        print("dic1=", dic1, ",v=", v)
        v = dic1.setdefault('a')
        print("dic1=", dic1, ",v=", v)

        運行結果:

        dic1= {'a': 'apple', 'b': 'banana', 'c': 'cherry', 'p': 'pear'} ,v= pear
        dic1= {'a': 'apple', 'b': 'banana', 'c': 'cherry', 'p': 'pear', 'g': None} ,v= None
        dic1= {'a': 'apple', 'b': 'banana', 'c': 'cherry', 'p': 'pear', 'g': None} ,v= apple

        10、update(dict)

        該函數使用給定的字典參數dict來更新一個字典。如果原字典中存在dict中對應的鍵,就使用dict中的值來修改它,否則就在原字典中新增一項。

        dic1 = {'a' : 'apple', 'b' : 'banana', 'c' : 'cherry'}
        print(dic1)
        dic1.update({'a' : 'apricot', 'm' : 'mango'})
        print(dic1)

        輸出結果:

        {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
        {'a': 'apricot', 'b': 'banana', 'c': 'cherry', 'm': 'mango'}

        Python字典類型使用教程

        以上是關于Python字典中的所有內容,如對內容有疑問請留言評論。


        如需轉載請注明出處和本文鏈接地址:翔宇亭IT樂園(http://www.sunyaoshi.com)

        本文鏈接地址:http://www.sunyaoshi.com/article/python/2020/6480.html

        知識評論評論內容只代表網友觀點,與本站立場無關!

           評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
        愿您的精彩評論引起共鳴,帶來思考和價值。
        用戶名: 查看更多評論
        分 值:100分 90分 80分 70分 60分 40分 20分
        內 容:
        驗證碼:
        關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖
        本站部分內容來自互聯網,如有侵權,請來信告之,謝謝!
        Copyright © 2007-2020 biye5u.com. All Rights Reserved.
        特黄特色三级在线观看 - 视频 - 在线观看 - 影视资讯 -心晴网