Python字典入門操作

2021-10-04 13:48:37 字數 4773 閱讀 6787

字典是python重要的組合資料型別。字典的操作比列表更複雜,但二者有相似之處,我建議學習字典可以模擬列表的某些操作

方法描述

keys()

返回字典中列表

values ()

返回字典中列表

items()

返回元組的列表。每個元組由字典的鍵和相應值組成

clear()

刪除字典的所有條目。

copy ()

返回字典高層結構的乙個拷貝,但不複製嵌入結構,而只複製對那些結構的引用。

update (x)

用字典x中的鍵值對更新字典內容。

get (x[, y])

返回鍵x,若未找到該鍵返回none,若提供y,則未找到x時返回

(1)dict函式(通過對映)

>>

>

#建立字典:dict函式(通過對映)

>>

> items=[(

'name'

,'gumby'),

('age',42

)]>>

> d=

dict

(items)

>>

> d

>>

>

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

>>

> d=

dict

(name=

'mike'

,age=20)

>>

> d

(2)直接賦值
>>

> d[

'mary']=

10

(3)使用for迴圈
>>

> squares=

>>

> squares

(4)由列表來建立字典
>>

> l1=

['a'

,'b'

,'c'

]>>

> l2=[1

,2,3

]>>

> d=

dict

(list

(zip

(l1,l2)))

#向dict()傳入乙個元組列表 [(,),(,)]

>>

> d

>>

> d=

dict

(name=

'alice'

,age=

18,***=

'f')

>>

> d.get(

'age')18

>>

> d.get(

'address'

,'無'

)'無'

>>

>

list

(d)[

'name'

,'age'

,'***'

]>>

>

list

(d.values())

['alice',18

,'f'

]>>

>

list

(d.keys())

['name'

,'age'

,'***'

]>>

>

list

(d.items())

[('name'

,'alice'),

('age',18

),('***'

,'f')]

>>

>

for key,value in d.items():

print

(key,value,sep=

'\t'

) name alice

age 18

*** f

(1)修改與新增 update()
#dict.update(dict) 如果兩個字典中存在相同的「鍵」,則以另乙個字典中的「值」為準來更新

>>

> sock=

>>

> sock.update(

)>>

> sock

#與update相似的操作**

>>

>x =

>>

>y =

>>

>z =

(2)與update()類似的**操作
>>

>x =

>>

>y =

>>

>z =

(3)刪除
>>

> sock=

>>

>

print

(sock.pop(

'ip'))

192.168

.9.62

>>

> sock

>>

>

print

(sock.popitem())

('protocol'

,'tcp'

)>>

> sock

>>

>

del sock[

'port'

]>>

> sock

get (x[, y])返回鍵x,若未找到該鍵返回none,若提供y,則未找到x時返回y,即y為預設值

>>

> examples =

>>

>

deffunc

(number)

:return examples.get(number,

'none'

)>>

> func(1)

'a'>>

> func(2)

'b'>>

> func(0)

'none

已知爬蟲已經爬取到2023年中排名前20的大學,並儲存uinfo列表中,如下

>>

>uinfo[[

'1',

'清華大學'

,'北京'],

['2'

,'北京大學'

,'北京'],

['3'

,'浙江大學'

,'浙江'],

['4'

,'上海交通大學'

,'上海'],

['5'

,'復旦大學'

,'上海'],

['6'

,'中國科學技術大學'

,'安徽'],

['7'

,'華中科技大學'

,'湖北'],

['7'

,'南京大學'

,'江蘇'],

['9'

,'中山大學'

,'廣東'],

['10'

,'哈爾濱工業大學'

,'黑龍江'],

['11'

,'北京航空航天大學'

,'北京'],

['12'

,'武漢大學'

,'湖北'],

['13'

,'同濟大學'

,'上海'],

['14'

,'西安交通大學'

,'陝西'],

['15'

,'四川大學'

,'四川'],

['16'

,'北京理工大學'

,'北京'],

['17'

,'東南大學'

,'江蘇'],

['18'

,'南開大學'

,'天津'],

['19'

,'天津大學'

,'天津'],

['20'

,'華南理工大學'

,'廣東'

]]

現在想統計前20大學的地區分布情況,並用字典儲存,用get()函式就很容易做到

>>

>count_dic=

>>

>

for i in uinfo:

if count_dic.get(i[2]

):#如果字典中不存在,返回none

count_dic[i[2]

]+=1else

: count_dic[i[2]

]=1>>

>count_dic

用字典處理後,就方便對其進行排序

>>

>rank=

sorted

(count_dic.items(

),key=

lambda x:x[1]

,reverse=

true

)>>

>rank[(

'北京',4

),('上海',3

),('湖北',2

),('江蘇',2

),('廣東',2

),('天津',2

),('浙江',1

),('安徽',1

),('黑龍江',1

),('陝西',1

),('四川',1

)]

python操作字典 Python 字典操作高階

學習了 python 基本的字典操作後,學習這些高階操作,讓寫出的 更加優雅簡潔和 pythonic 與字典值有關的計算 問題想對字典的值進行相關計算,例如找出字典裡對應值最大 最小 的項。解決方案一 假設要從字典 中找出值最小的項,可以這樣做 d min zip d.values d.keys 2...

Python入門 字典

1.簡單字典 aliens 0 print aliens 0 color print aliens 0 points green 52.使用字典 3.新增鍵值對 aliens 0 print aliens 0 color print aliens 0 points aliens 0 firstpoi...

python 字典操作

python 語法之字典 2009 10 21 磁針石 xurongzhong gmail.com 部落格 oychw.cublog.cn python essential reference 4th edition 2009 beginning python from novice to prof...