字典是另一種可變?nèi)萜髂P停铱纱鎯θ我忸愋蛯ο蟆?
字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:
d
=
{
key1
:
value1
,
key2
:
value2
}
鍵一般是唯一的,如果重復(fù)最后的一個鍵值對會替換前面的,值不需要唯一。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或元組。
一個簡單的實例:
dict
=
{
'WJ'
:
'female'
,
'CT'
:
'male'
}
這里主要說明一鍵一值和一鍵多值的情況。
一、 一鍵一值
- 訪問字典中的值: dict[key] 返回key對應(yīng)的值value
print
(
dict
[
'WJ'
]
)
# 代碼結(jié)果
female
- 為字典增加一項: dict[key] = value
dict
[
'XXT'
]
=
'male'
print
(
dict
)
# 代碼結(jié)果
{
'WJ'
:
'female'
,
'CT'
:
'male'
,
'XXT'
:
'male'
}
- 刪除字典的一項: del dict[key] 或者 dict.pop[key]
del
dict
[
'WJ'
]
# 代碼結(jié)果
{
'CT'
:
'male'
,
'XXT'
:
'male'
}
- 遍歷字典
for
key
in
dict
:
print
(
key
+
':'
+
dict
[
key
]
)
# 代碼結(jié)果
WJ
:
female
CT
:
male
XXT
:
male
- 判斷一個鍵是否在字典中: in 或者 not in
'WJ'
in
dict
# True
'XXJ'
not
in
dict
# True
二、一鍵多值(defaultdict類)
- 這里按照append順序設(shè)置下標(biāo),下標(biāo)表示類似二維數(shù)組
from
collections
import
defaultdict
dict
=
defaultdict
(
list
)
# 這里如果希望消除重復(fù)元素(且不在意他們的順序),就用集合。set
dict
=
defaultdict
(
list
)
dict
[
'WJ'
]
.
append
(
'female'
)
dict
[
'WJ'
]
.
append
(
22
)
dict
[
'CT'
]
.
append
(
'male'
)
print
(
dict
)
# 代碼結(jié)果
defaultdict
(
<
class
'list'
>
,
{
'WJ'
:
[
'female'
,
22
]
,
'CT'
:
[
'male'
]
}
)
- 遍歷字典
for
x
in
dict
:
print
(
x
+
':'
+
str
(
dict
[
x
]
)
)
# 代碼結(jié)果
WJ
:
[
'female'
,
22
]
CT
:
[
'male'
]
-
訪問多個值中的某個值:
這里類似數(shù)組下標(biāo)的訪問
print
(
dict
[
'WJ'
]
[
0
]
+
','
+
str
(
dict
[
'WJ'
]
[
1
]
)
)
# 代碼結(jié)果
female
,
22
-
字典排序
排序我們使用sorted,如下:
sorted(L.items(), key=lambda x:x[0], reverse=True)
reverse=True 代表降序,默認(rèn)為升序;lambda x:x[0] 是設(shè)置按照x[0]進行排序,x[0]表示key;x[1]表示value,在一鍵多值情況下需要使用類似二維數(shù)組的表示方法,舉例如下:
from
collections
import
defaultdict
dict
=
defaultdict
(
list
)
dict
[
'WJ'
]
.
append
(
'female'
)
dict
[
'WJ'
]
.
append
(
22
)
dict
[
'CT'
]
.
append
(
'male'
)
dict
[
'CT'
]
.
append
(
23
)
print
(
dict
)
dict
=
sorted
(
dict
.
items
(
)
,
key
=
lambda
x
:
x
[
1
]
[
0
]
)
# 代表value的第一個值
print
(
dict
)
# 代碼結(jié)果
排序前: defaultdict
(
<
class
'list'
>
,
{
'WJ'
:
[
'female'
,
22
]
,
'CT'
:
[
'male'
,
23
]
}
)
排序后:
[
(
'WJ'
,
[
'female'
,
22
]
)
,
(
'CT'
,
[
'male'
,
23
]
)
]
這里我們注意排序后的dict為一個tuple元組
下面用一個實際例子說明一鍵多值的用法: 見下面鏈接
https://blog.csdn.net/CT_WJ/article/details/95005180
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
