每天學點Python之dict

2021-12-29 22:14:10 字數 1919 閱讀 8895

字典用來儲存鍵值對,在python中同乙個字典中的鍵和值都可以有不同的型別。

建立乙個空的字典有兩種方法:

d = {}

d = dict()而建立乙個包含元素的字典方法比較多,下面操作結果相同:

>>> a = dict(one=1, two=2, three=3)

>>> b =

>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))

>>> d = dict([('two', 2), ('one', 1), ('three', 3)])

>>> e = dict()獲取字典中的值只需通過dict[key]來獲取,如果不存在該鍵,會丟擲keyerror錯誤;也可用dict.get(k[,default])方法來獲取,這個方法即使鍵不存在也不會丟擲錯誤,也可以給乙個預設的值,在鍵值對不存在時返回:

>>> a = dict(one=1, two=2, three=3)

>>> a['one']

1>>> a['four']

traceback (most recent call last):

file "", line 1, in

keyerror: 'four'

>>> a.get('four')

>>> a.get('four',4)

4要修改字典中的鍵對應的值,只需要取出來直接對它賦值就行,需要注意的是,如果修改的鍵原來不存在,就變成了向字典中增加了乙個鍵值對:

>>> a = dict(one=1, two=2, three=3)

>>> a['one']=10

>>> a

>>> a['four']=4

>>> a

而dict.setdefault(key[,default])在key存在時,不做修改返回該值,如果不存在則新增鍵值對(key, default),其中default預設為none:

>>> a = dict(one=1, two=2, three=3)

>>> a.setdefault('one')

1>>> a

>>> a.setdefault('four')

>>> a

批量增加有dict.update(p)方法。

如果要刪除乙個鍵值對,直接用del方法,試圖刪除乙個不存在的鍵值對會丟擲keyerror錯誤:

>>> a

>>> del a['four']

>>> a

>>> del a['four']

traceback (most recent call last):

file "", line 1, in

keyerror: 'four'此外同樣可以呼叫dict.clear()來清空字典。還有dict.pop(key[,default])和dict.popitem(),這兩個乙個是彈出特定鍵對應的鍵值對,另乙個彈出任意的乙個鍵值對:

>>> a

>>> a.pop("one")

10>>> a

>>> a.popitem()

('two', 2)

>>> a

字典可以分別返回它所有的鍵值對、鍵和值,它們的型別都是字典內建型別,可以通過list()轉化為列表:

>>> a = dict(one=1, two=2, three=3)

>>> a

>>> a.items()

dict_items([('two', 2), ('one', 1), ('three', 3)])

>>> a.values()

dict_values([2, 1, 3])

>>> a.keys()

dict_keys(['two', 'one', 'three'])

>>> list(a.keys())

['two', 'one', 'three']

每天學點Python之tuple

元組就是乙個增加了限制的列表,主要的區別就是元組一旦確定就不能再修改。它們可以通過各自的建構函式相互轉化。元組與列表非常相似,但它有自己的優勢 元組比列表速度快,同樣遍歷一串數值,元組的速度比類表快 建立安全的變數,有些變數不想在建立後被修改 元組是可以當作字典的鍵和集合的值的,列表由於是變化的,雜...

每天學點Python之Iterator

我們經常需要遍歷乙個物件中的元素,在python中這種功能是通過迭代器來實現的。每乙個迭代器可以通過反覆呼叫迭代器的 next 方法來返回建立該迭代器的物件中的後繼值。當沒有可用資料時,產生乙個stopinteration異常。此時,迭代器物件被耗盡,之後再呼叫 next 方法只會再次產生stopi...

每天學點Linux

1.程序檢視刪除 ps 檢視當前正在執行的程序資訊,aux顯示所有狀態。可以確定哪些程序正在執行 執行狀態 程序是否結束 程序有沒有僵死 程序占用資源情況。eg ps aux grep tomcat kill終止程序,9強迫程序立刻終止 eg kill 9 pid killall 9 程序名 2.統...