python 3中的字典|小云越來越好|疫情期間日更(4)

#字典(dictionary)
和漢語中意思差不多,就是查詞,解釋詞。
學習字典要對應列表來學。(列表在上篇內容)

因爲列表有很多不方便的地方,列表的下標只能表示數據,因此列表不能表示出關係(比如姓名—學號)。
字典可以解決這個問題。通過字典的一個下標,能夠找到與這種除了數據的對應關係。

###字典的下標叫鍵(key),先說一下字典中的鍵。
字典中的值都存儲在一個特定的鍵(key)下,鍵可以是數字,字符串甚至是元組。

###重點 字典中的一個鍵必須是唯一的
看下面的一個例子:

age={}
age["Bob"]="44"
age["BOb"]="5"
print(tang)

輸出結果爲:

{'Bob': '44', 'BOb': '5'}

給鍵賦值了兩個Bob 最後輸出結果並沒有報錯,那麼這麼說鍵就就不是唯一的了。實際上不是這樣的。
字典關心的怎樣快速得到信息想要查找的信息,我們得到的是Bob即是44歲,又是5歲,顯然是不正確的,說明這當中有兩個人都叫Bob,生活中這樣的例子太多了。在班裏,我們登記成績即使倆個人都叫Bob,學號也不一樣吧。這樣才能登記出正確的成績。回過來看,鍵必須是唯一的。

###字典中的一個鍵可以對應多個值,
當然啦,叫tang先生的成績單上,不是隻有一門的成績

grade={}
grade["tang"]="97","99","87"
print(grade)

輸出結果爲:

{'tang': ('97', '99', '87')}

##字典是由多個鍵(key)和其對應的值(value)構成的key-value對組成。key 和 value 中間用冒號隔開,項之間用逗號隔開,整個字典是由大括號{}括起來。

tang={"name":"gang","age":"7"}          

print(tang)          #輸出完整的字典
print(tang.keys())   #輸出所有鍵  
print(tang.values())   #輸出所有值

輸出結果爲:

{'name': 'gang', 'age': '7'}
dict_keys(['name', 'age'])
dict_values(['gang', '7'])

看下面的例子。並且打印證明它們是字典類型。

tang={}
a=type(tang)
print(a)

tang2={}
print(type(tang2))

tang3=dict()
print(type(tang3))

輸出結果爲:

<class 'dict'>
<class 'dict'>
<class 'dict'>

我們發現字典和列表類似,但是字典是用的{},列表用的是[]。

2.現在我來打印字典,看一下字典裏面有什麼東西

a=dict()
print(a)

輸出結果爲:

{}

這時發現字典裏面是空的。字典可以爲空。

###字典是無序的對象的集合(列表是有序的對象的集合)

tang={"name":"唐","age":"13"}
print(tang)

輸出結果爲:

{ 'age': '13''name''唐'}

由此可見詞典輸出的順序和輸入的順序不一致。有一次驗證了字典作用是保存了哪些數據。
###從字典中取值

tang={"name":"唐","age":"13"}
print(tang["name"])

輸出的結果是:

###在字典中增加一個鍵 —值對

tang={"name":"唐"}
tang["age"]=13
print(tang)

輸出結果:

{'name': '唐', 'age': 13}

###在字典中修改一個鍵 —值對**

tang={"name":"唐"}
tang["name"]="剛剛"
print(tang)

輸出結果爲:

{'name': '剛剛'}

由此可知,如果key存在就是修改鍵—值對,如果key不存在就是增加鍵—值對。
###在字典中刪除一個鍵 —值對**

tang={"name":"唐","age":13}
tang.pop("name")
print(tang)

輸出結果爲:

{'age': 13}

###統計鍵值對的數量

tang={"name":"唐","age":13}
print(len(tang))

輸出結果爲:2

###合併鍵值對

a={"name":"yun"}
b={"age":"13"}
a.update(b)
print(a)

輸出結果爲:

{'name': 'yun', 'age': '13'}

值得注意的是a.update(b)的方式並沒有返回一個新的字典,而是對a進行了更新。此時的返回值是None.

a={"name":"yun"}
b={"age":"13"}
c=a.update(b)
print(c)

輸出結果爲:

None

###清空字典

a={"name":"yun"}
a.clear()
print(a)

輸出結果爲:

{}

值得注意的是清除字典和合並字典一樣,並沒有形成一個新的字典,而是對原有字典的清除,此時的返回值是None.這裏我就不驗證了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章