python基礎(chǔ)類型(二):字典與元組

一、字典

python中的字典是由鍵值對組成,每一個(gè)鍵在字典中都是唯一的,值可以是任意類型的對象,但是鍵必須是不可遍的對象類型(如:字符串、數(shù)字、元組等)。

一個(gè)字典由許多個(gè)鍵值對組成,我們可以通過鍵來訪問字典中的對應(yīng)鍵的值,如:

d = {
    'test1':1,
    2:2,
    (1,2):3
}

d['test1']  # 1
d[2] # 2
d[(1,2)] # 3

也可以通過鍵來給字典中對應(yīng)位置的鍵進(jìn)行賦值,如:

d['test1']  # 1
d['test1'] = 4
d['test1']  # 4

如果所給的鍵不在字典中,就會(huì)向字典里添加所給的鍵并進(jìn)行賦值,如:

d['test2'] = 4
"""
d = {
    'test1':1,
    2:2,
    (1,2):3,
    'test2': 4
}
"""

1. 字典常用操作

  1. in:我們通常使用 in來判斷某個(gè)鍵是否在字典當(dāng)中,如:

    'test1' in d # True
    3 in d # False
    
  2. items():以元組形式返回字典中的鍵值對,如:

    d = {
        'test1':1,
        2:2,
        (1,2):3
    }
    print(d.items())
    # dict_items([('test1', 1), (2, 2), ((1, 2), 3)])
    
  3. keys():以列表形式返回字典中的鍵,如:

    d = {
        'test1':1,
        2:2,
        (1,2):3
    }
    print(d.keys())
    # dict_keys(['test1', 2, (1, 2)])
    
  4. values():以列表形式返回字典中的值,如:

    d = {
        'test1':1,
        2:2,
        (1,2):3
    }
    print(d.values())
    # dict_values([1, 2, 3])
    
  5. update(dict: b)將字典 b中的所有鍵值添加到 d中,如果 s中的鍵在 d中已經(jīng)存在,則用 s中鍵對應(yīng)的值覆蓋 d值,如:

    d = {
        'test1':1,
        2:2,
        (1,2):3
    }
    b = {
        2:3,
        'test2':5
    }
    
    d.update(b)
    print(d)
    # {'test1': 1, 2: 3, (1, 2): 3, 'test2': 5}
    

    可以看到 d中原來 2處的值被 b中 2處的值覆蓋了。

  6. get(key, default):返回字典中鍵 key對應(yīng)的值,如果鍵 key不在字典中,則返回 default。如果沒有提供默認(rèn)值且鍵 key不在字典中,就會(huì)拋出 KeyErrror錯(cuò)誤。

二、元組

元組在 python中和字符串一樣,是不可變類型,即一旦定義其值不可改變,相當(dāng)于其他語言中的常量。

元組在 python中通常用來保存一些不能改變的值,也經(jīng)常用來作為函數(shù)的返回值,因?yàn)樵M有一種操作叫做解包,可以將元組中的多個(gè)值同時(shí)賦值給多個(gè)變量,如:

t = (1,2,3,4)
x1,x2,x3,x4 = t
# 在最后一個(gè)變量名前加上 *,就會(huì)將多余的值全部給最后一個(gè)變量
# 否則會(huì)報(bào)錯(cuò), 如:
x1, x2 = t #ValueError: too many values to unpack (expected 2)
x1, *x2 = t
# x1    1
# x2    [2,3,4]

在返回函數(shù)值時(shí),我們可以這樣使用:

def f():
    return (1,2,3)

x1,x2,x3 = f()
x1,*x2 = f()

# 也可以不使用括號
def f():
    return 1,2,3

x1,x2,x3 = f()
x1,*x2 = f()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容