1. 程式人生 > >字典dict

字典dict

hid pla dac key items cti 函數 uno 內置

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

字典是無序的;鍵必須是唯一的,但值則不必(值可以取任何數據類型,但鍵key必須是不可變的,如字符串,數字或元組,但列表就不行

不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住

1.訪問字典的值

可以使用方括號[key]

2.修改字典的值

技術分享
dict = {Name: Runoob, Age: 7, Class: First}

dict[
Age] = 8; # 更新 Age dict[School] = "菜鳥教程" # 添加信息 print ("dict[‘Age‘]: ", dict[Age]) print ("dict[‘School‘]: ", dict[School])
View Code

結果

技術分享
dict[Age]:  8
dict[School]:  菜鳥教程
View Code

3.字典內置函數

序號 格式 描述 實例
1 len(dict) 計算字典元素個數,即鍵的總數。 技術分享
dict = {Name: Runoob, 
Age: 7, Class: First} print(len(dict))
View Code

結果:3

2 str(dict) 輸出字典,以可打印的字符串表示。 技術分享
dict = {Name: Runoob, Age: 7, Class: First}
str(dict)
View Code

結果:

技術分享
"{‘Name‘: ‘Runoob‘, ‘Class‘: ‘First‘, ‘Age‘: 7}"
View Code

3
dict.clear()
用於刪除字典內所有元素。 技術分享
dict = {Name: Zara
, Age: 7} print ("字典長度 : %d" % len(dict)) dict.clear() print ("字典刪除後長度 : %d" % len(dict))
View Code

結果:

技術分享
字典長度 : 2
字典刪除後長度 : 0
View Code

4
dict.fromkeys(seq[, value]))
  • seq -- 字典鍵值列表。
  • value -- 可選參數, 設置鍵序列(seq)的值。
用於創建一個新字典,以序列seq中元素做字典的鍵,value為字典所有鍵對應的初始值。 技術分享
seq = (name, age, sex)

dict = dict.fromkeys(seq)
print ("新的字典為 : %s" %  str(dict))

dict = dict.fromkeys(seq, 10)
print ("新的字典為 : %s" %  str(dict))
View Code

結果:

技術分享
新的字典為 : {age: None, name: None, sex: None}
新的字典為 : {age: 10, name: 10, sex: 10}
View Code

5
dict.get(key, default=None)
  • key -- 字典中要查找的鍵。
  • default -- 如果指定鍵的值不存在時,返回該默認值值。
返回指定鍵的值,如果值不在字典中返回默認值。 技術分享
dict = {Name: Runoob, Age: 27}

print ("Age 值為 : %s" %  dict.get(Age))
print ("Sex 值為 : %s" %  dict.get(Sex, "NA"))
View Code

結果:

技術分享
Age 值為 : 27
Sex 值為 : NA
View Code

6
dict.items()
以列表返回可遍歷的(鍵, 值) 元組數組。 技術分享
dict = {Name: Runoob, Age: 7}

print ("Value : %s" %  dict.items())
View Code

結果:

技術分享
Value : dict_items([(Age, 7), (Name, Runoob)])
View Code

7
dict.keys()
返回一個字典所有的鍵 技術分享
dict = {Name: Runoob, Age: 7}

print ("字典所有的鍵為 : %s" %  dict.keys())
View Code

結果

技術分享
字典所有的鍵為 : dict_keys([Age, Name])
View Code

dict.values()
以列表返回字典中的所有值。 技術分享
dict = {Sex: female, Age: 7, Name: Zara}

print ("字典所有值為 : ",  list(dict.values()))
View Code

技術分享
字典所有值為 :  [female, Zara, 7]
View Code

8
dict.setdefault(key, default=None)
setdefault() 方法和get()方法類似, 如果鍵不已經存在於字典中,將會添加鍵並將值設為默認值。 技術分享
dict = {Name: Runoob, Age: 7}

print ("Age 鍵的值為 : %s" %  dict.setdefault(Age, None))
print ("Sex 鍵的值為 : %s" %  dict.setdefault(Sex, None))
print ("新字典為:", dict)
View Code

結果

技術分享
Age 鍵的值為 : 7
Sex 鍵的值為 : None
新字典為: {Age: 7, Name: Runoob, Sex: None}
View Code

9
dict.update(dict2)
  • dict2 -- 添加到指定字典dict裏的字典。
 
把字典dict2的鍵/值對更新到dict裏 技術分享
dict = {Name: Runoob, Age: 7}
dict2 = {Sex: female }

dict.update(dict2)
print ("更新字典 dict : ", dict)
View Code

結果

技術分享
更新字典 dict :  {Sex: female, Age: 7, Name: Runoob}
View Code

10
pop(key[,default])
  • key: 要刪除的鍵值
  • default: 如果沒有 key,返回 default 值
pop() 方法刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。 技術分享
site= {name: 菜鳥教程, alexa: 10000, url: www.runoob.com}
pop_obj=site.pop(name)
print(pop_obj)
View Code

結果

11
popitem()

Python 字典 popitem() 方法隨機返回並刪除字典中的一對鍵和值(key,value)

如果字典已經為空,卻調用了此方法,就報出KeyError異常。

技術分享
site= {name: 菜鳥教程, alexa: 10000, url: www.runoob.com}
pop_obj=site.popitem()
print(pop_obj)   
print(site)
View Code

結果:

技術分享
(url, www.runoob.com)
{name: 菜鳥教程, alexa: 10000}
View Code

字典dict