ETH官方钱包

切換
舊版
前往
大廳
主題

Python筆記Day7-字典(Dictionary)

萬念俱灰的人最強 | 2019-07-28 00:58:32 | 巴幣 0 | 人氣 113

什麼是字典?相當於索引頁的概念,你輸入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'}
要注意到一個點就是,字典所輸出的值不保證照你輸入的順序,因為字典有個特性是"無順序性"。
# 取得key值
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,
那如果我們是打test['x']呢?

Traceback (most recent call last):
    print(test['x'])
KeyError: 'x'
因為x並不存在,所以產生了KeyError,
所以比較推薦要取值的話,使用下面那個方法。

# 取得單一key,所對應到的內容(可以設預設值)
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'}

------題外話------
今天陪室友去中正高工參加中華民國軍官考試,欣賞女子800M賽跑刺激
他也拿了小組第四名的佳績,還可以啦!





創作回應

更多創作