什麼是字典?相當於索引頁的概念,你輸入key,即是索引值,可以快速找到你想要的資料。
在Java中,有HashMap、HashTable...
C++ 則是hashmap
C# -> Dictionary
dic = {key : value}
其中key為唯一不重複值
我們要怎麼建立字典呢?
# 建立字典
test = {
'a':87,
'b':"發大財",
'd':"高雄",
"c":"fake"
}
print(test)#{'a': 87, 'b': '發大財', 'd': '高雄', 'c': 'fake'}要注意到一個點就是,字典所輸出的值不保證照你輸入的順序,因為字典有個特性是"無順序性"。
test = {
'a':87,
'b':"發大財",
'd':"高雄",
"c":"fake"
}
print(test)#{'a': 87, 'b': '發大財', 'd': '高雄', 'c': 'fake'}要注意到一個點就是,字典所輸出的值不保證照你輸入的順序,因為字典有個特性是"無順序性"。
# 取得key值
print(test.keys())# dict_keys(['a', 'b', 'd', 'c'])
# 取得values
print(test.values())# dict_values([87, '發大財', '高雄', 'fake'])
print(test.keys())# dict_keys(['a', 'b', 'd', 'c'])
# 取得values
print(test.values())# dict_values([87, '發大財', '高雄', 'fake'])
# 取得單一key對應到之內容
print(test['a'])# 87
這一個例子裡面,由於a是test裡面所擁有的索引值,所以會對應到87,
print(test['a'])# 87
這一個例子裡面,由於a是test裡面所擁有的索引值,所以會對應到87,
那如果我們是打test['x']呢?
Traceback (most recent call last):
print(test['x'])
KeyError: 'x'
因為x並不存在,所以產生了KeyError,
所以比較推薦要取值的話,使用下面那個方法。
# 取得單一key,所對應到的內容(可以設預設值)
print(test.get('b'))#發大財
print(test.get('b'))#發大財
跟上面一樣,我們把索引值換成x
print(test.get('x',689))
他所輸出的內容會變成None,而不是剛剛的KeyError,我們也可以指定預設值。
輸出情況,就會從None變成我們所指定的689。
那如果我們今天要新增資料呢?
# 新增資料到字典中
test['qwe'] = "sss"# 若是索引值沒有qwe,則新增一個。
print(test) # {'a': 87, 'b': '發大財', 'd': '高雄', 'c': 'fake', 'qwe': 'sss'}
test['a'] = '88' # 若是索引值已經存在,那將其value值覆蓋。
print(test) # {'a': '88', 'b': '發大財', 'd': '高雄', 'c': 'fake', 'qwe': 'sss'}# 更新字典的內容test.update({"a":89,"qwe":"ssss"})
print(test) # {'a': 89, 'b': '發大財', 'd': '高雄', 'c': 'fake', 'qwe': 'ssss'}
print(test) # {'a': '88', 'b': '發大財', 'd': '高雄', 'c': 'fake', 'qwe': 'sss'}# 更新字典的內容test.update({"a":89,"qwe":"ssss"})
print(test) # {'a': 89, 'b': '發大財', 'd': '高雄', 'c': 'fake', 'qwe': 'ssss'}
------題外話------
今天陪室友去中正高工參加中華民國軍官考試,欣賞女子800M賽跑真刺激。
他也拿了小組第四名的佳績,還可以啦!