字典是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...