Python字典的建立及訪問

2021-06-29 15:23:31 字數 4318 閱讀 2908

方法一:

>>> dict1 = {}

>>> dict2 =

>>> dict1, dict2

({}, )

方法二:從python 2.2 版本起,可以使用乙個工廠方法,傳入乙個元素是列表的元組作為引數

>>> fdict = dict((['x', 1], ['y', 2]))

>>> fdict

方法三:

從python 2.3 版本起, 可以用乙個很方便的內建方法fromkeys() 來建立乙個"預設"字典, 字典中元素具有相同的值 (如果沒有給出, 預設為none,這個有點像我框架的oneobject方法):

>>> ddict = {}.fromkeys(('x', 'y'), -1) 

>>> ddict

>>>

>>> edict = {}.fromkeys(('foo', 'bar'))

>>> edict

想遍歷乙個字典(一般用鍵), 你只需要迴圈檢視它的鍵, 像這樣:

>>> dict2 = 

>>>

>>>> for key in dict2.keys():

... print 'key=%s, value=%s' % (key, dict2[key])

...key=name, value=earth

key=port, value=80

從python 2.2 開始,可以直接在 for 迴圈裡遍歷字典。

>>> dict2 = 

>>>

>>>> for key in dict2:

... print 'key=%s, value=%s' % (key, dict2[key])

...key=name, value=earth

key=port, value=80

想判定其是否存在某個鍵值對,可以使用has_key()或 in 、 not in 操作符

>>> 'server' in dict2 # 或 dict2.has_key('server')

false

>>> 'name' in dict # 或 dict2.has_key('name')

true

>>> dict2['name']

'earth'

乙個字典中混用數字和字串的例子:

>>> dict3 = {}

>>> dict3[1] = 'abc'

>>> dict3['1'] = 3.14159

>>> dict3[3.2] = 'xyz'

>>> dict3

採取覆蓋更新

上例中 dict2['name']='earth';

更新 dict2['name']='abc';

del dict2['name'] # 刪除鍵為「name」的條目

dict2.clear() # 刪除dict2 中所有的條目

del dict2 # 刪除整個dict2 字典

dict2.pop('name') # 刪除並返回鍵為「name」的條目

dict2 = 

>>> dict2.keys()

['port', 'name']

>>>

>>> dict2.values()

[80, 'earth']

>>>

>>> dict2.items()

[('port', 80), ('name', 'earth')]

>>>

>>> for eachkey in dict2.keys():

... print 'dict2 key', eachkey, 'has value', dict2[eachkey]

...dict2 key port has value 80

dict2 key name has value earth

update()方法可以用來將乙個字典的內容新增到另外乙個字典中

dict3 = 

>>> dict3.clear()

>>> dict3

{}

對映型別相關的函式

>>> dict(x=1, y=2)

>>> dict8 = dict(x=1, y=2)

>>> dict8

>>> dict9 = dict(**dict8)

>>> dict9

dict9 = dict8.copy()

方法名字

操作dict.clear()

刪除字典中所有元素

dict.copy()

返回字典(淺複製)的乙個副本

dict.fromkeysc(seq,val=none)

建立並返回乙個新字典,以seq 中的元素做該字典的鍵,val 做該字典中所有鍵對應的初始值(如果不提供此值,則預設為none)

dict.get(key,default=none)

對字典dict 中的鍵key,返回它對應的值value,如果字典中不存在此鍵,則返回default 的值(注意,引數default 的預設值為none)

dict.has_key(key)

如果鍵(key)在字典中存在,返回true,否則返回false. 在python2.2版本引入in 和not in 後,此方法幾乎已廢棄不用了,但仍提供乙個 可工作的介面。

dict.items()

返回乙個包含字典中(鍵, 值)對元組的列表

dict.keys()

返回乙個包含字典中鍵的列表

dict.values()

返回乙個包含字典中所有值的列表

dict.iter()

方法iteritems(), iterkeys(), itervalues()與它們對應的非迭代方法一樣,不同的是它們返回乙個迭代子,而不是乙個列表。

dict.pop(key[, default])

和方法get()相似,如果字典中key 鍵存在,刪除並返回dict[key],如果key 鍵不存在,且沒有給出default 的值,引發keyerror 異常。

dict.setdefault(key,default=none)

和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。

dict.setdefault(key,default=none)

和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。

定義字典 dic =

方法一:

for key in dic:

print key,dic[key]

print key + str(dic[key])

結果:

a hello

ahello

c you

cyou

b how

bhow

細節:

print key,dic[key],後面有個逗號,自動生成乙個空格

print key + str(dic[key]),連線兩個字串,用的是加號,直接輸出,中間不加逗號

方法二:

for (k,v) in dic.items():

print "dic[%s]="%k,v

結果:

dic[a]= hello

dic[c]= you

dic[b]= how

方法三:

for k,v in dic.iteritems():

print "dic[%s]="%k,v

結果:

dic[a]= hello

dic[c]= you

dic[b]= how

對比:

items()返回的是列表物件,而iteritems()返回的是iterat

or物件。例如:

print dic.items()        #[('a', 'hello'), ('c', 'you'), ('b', 'how')]

print dic.iteritems()   #

深究:iteritor是迭代器的意思,一次反悔乙個資料項,知道沒有為止

for i in dic.iteritems():

print i

結果:('a', 'hello')

('c', 'you')

('b', 'how')

Python建立字典及獲取字典鍵值對

第一部分 建立字典 方法一 常規方法 如果事先能拼出整個字典,則此方法比較方便 d1 方法二 動態建立 如果需要動態地建立字典的乙個字段,則此方法比較方便 d2 d2 name bob d2 age 40 d2 方法三 dict 關鍵字形式 比較少,但鍵必須為字串型。常用於函式賦值 d3 dict ...

字典 建立,訪問,遍歷,字典推導式

本次課學習字典。包括字典的建立,訪問,遍歷等各種操作 字典的建立 dictionary 字典由鍵 值對組成。鍵是唯一的,值可以不唯一。1.1 建立字典方法1 手動輸入一對對的鍵值對,所有符號英文狀態輸入。案例 1 zidian print zidian 執行結果 print type zidian ...

Python字典建立

在python 中用字典建立主要有兩種方式 和dict 關鍵字 在 建立字典的時候,我們發現key的值可以是整形常量,浮點常量,元祖,但是不能為列表!例如 dict 都是可以的,正確的 但是在用dict key value 的方式建立的時候,python編譯器,會將傳入的key預設為字串 key值參...