一、字典
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. 字典常用操作
-
in:我們通常使用in來判斷某個(gè)鍵是否在字典當(dāng)中,如:'test1' in d # True 3 in d # False -
items():以元組形式返回字典中的鍵值對,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.items()) # dict_items([('test1', 1), (2, 2), ((1, 2), 3)]) -
keys():以列表形式返回字典中的鍵,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.keys()) # dict_keys(['test1', 2, (1, 2)]) -
values():以列表形式返回字典中的值,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.values()) # dict_values([1, 2, 3]) -
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處的值覆蓋了。
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()