字典 當索引不好用時

2021-08-10 18:07:46 字數 3013 閱讀 2533

字典是python中唯一內建的對映型別。字典中的值沒有特殊的順序,但是都儲存在乙個特定的鍵(key)下。鍵可以是數字、字串甚至是元組。

字典中的鍵是唯一的(其他型別的對映也是如此),而值並不唯一

可以用dict函式來建立字典

items = 

d = dict(items)

print (d)

#字典裡的儲存是沒有順序的

dict也可以通過關鍵字引數來建立字典

dd = dict(name='zhao',age=42)

dd

#dict函式根本不是真正的函式,它是個型別,就像list、tuple和str一樣

字典的基本行為在很多方面與序列相似

鍵型別:字典的鍵可以是任意的不可變型別,比如浮點型、字串和元組

自動新增:及時鍵起初在字典中並不存在,也可以為他賦值,這樣字典就會建立新的項。

成員資格:表示式k in d(字典)查詢的是鍵,而不是值。表示式v in l(列表)查詢值,而不是索引

字典的格式化字串

title = "world"  

year = 2013

print ("hello %(titles)s, %(years)10d" % )

hello world,       2013

字典方法

就像其他內建型別一眼個,字典也有方法。

-clear

清除字典中的所有的項。這是個原地操作(類似list.sort),所以無返回值(或者說返回none)

x = {}

y = x

x['key'] = 'value'

print (y)

x = {}

print (y)

x = {}

y = x

x['key'] = 'value'

print (y)

x.clear()

print (y)

{}

兩種情況中,x和y最初對應同乙個字典。在第一種裡,將x關聯到乙個新的空字典來清空x,對y一點影響都沒有。而在第二種中,使用clear可以將x和y都清空

-copy

d = 

c = d.copy()

c['name'] = 'qian'

c['age'].remove('man')

print (c)

print (d)

可以看到,當在副本中替換值得時候,原始字典不受影響,但是修改了某個值,原字典也會改變(淺複製)

避免這一問題可以使用deepcopy(from copy import deepcopy)

-fromkeys

此方法使用給定的鍵建立新的字典,每個鍵對應乙個預設的值none,當然也可以自己提供預設值

{}.fromkeys(,'unknown')

-get

一般開說,試圖訪問字典中不存在的鍵時會出錯,而使用get方法時就不會出錯,預設返回none,也可以自己提供預設值

x = {}.fromkeys(,'unknown')

d.get('***','unknown')

'unknown'

-has_key

檢查字典中是否含有特定的鍵。表示式d.has_key(k)相當於表示式k in d。返回true或者false

-items

items將字典中所有的項以列表的形式返回

d = 

d.items()

dict_items([('name', 'zhao'), ('age', [42, 'man'])])

-keys

以列表的形式返回

-pop

將獲得的鍵-值從字典中移除,返回移除鍵的值

d = 

c = d.pop('name')

print (d)

print (c)

zhao

-popitem

隨機刪除乙個鍵-值,返回值是元組的形式被刪除的鍵-值

d = 

c = d.popitem()

print (d)

print (c)

('age', [42, 'man'])

-setdefault

方法類似於get,但會在字典中不含有給定鍵的情況下設定相應的鍵值

d = 

c = d.setdefault('addr','unknown')

print (d)

print (c)

unknown

#預設值值可選的,不設定,會預設使用none

-update

利用乙個字典來更新另外乙個字典

d = 

c =

d.update(c)

print (d)

相同鍵會覆蓋,沒有的將會新增到舊的字典中

-values

以列表的形式返回字典中的值

d = 

c =

d.update(c)

print (d)

d.values()

out[165]:

dict_values(['qian', [42, 'man'], 'male'])

FishC筆記 26 講 字典 當索引不好用時2

本期內容詳解 1 dict 是乙個工廠函式,呼叫後會生成該型別的例項 2 字典的一種內建方法 dict1.fromkeys s v 3 訪問字典的方法 1 dict1.keys dict1.value dict1.items 返回每一項 2 dict1.get 對應鍵的值不存在的話返回乙個none,...

python學習(四) 字典 當索引不好用時

第四章 字典 當索引不好用時 4.1 字典的使用 字典的適用場景 表示乙個遊戲棋盤的狀態,每個鍵都是由座標值組成的元組 儲存檔案修改時間,用檔名作為鍵 4.2 建立和使用字典 如下的 鍵 值 對就是字典 phonebook phonebook alice 2341 4.2.1 dict函式 可以用d...

Python學習筆記 四 字典 當索引不好用時

4.1 字典的使用 類似於c 中的map.4.2 建立和使用字典 字典可以通過下面的方式建立 phonebook 4,2,1 dict 函式 可以同dict函式,通過其他對映 比如其他字典 或者 鍵,值 這樣的序列對建立字典 items name gumby age 42 d dict items ...