截至目前為止經歷了串列 List
、集合 Set
、元組 Tuple
,今天要講的是字典 Dict
,這是一種重要且常用的資料結構,日常使用出場頻率和串列 List
差不多!
字典
是用來儲存鍵值對 key-value-pair
,每個鍵 key
會對應到一個值 value
,透過鍵 key
可以快速查詢、修改、刪除對應的值 value
,在前幾日有提到字典的底層是使用hash
,所以也因這樣才可以在操作上的效率非常高。
int
、str
、tuple
。list
、set
、dict
。鍵 key
已存在,那麼原本的資料則會被覆蓋掉。{}
包裹著內容person = {
"name": "小明",
"age": 18,
"country": "Taiwan",
}
person = {}
person = dict()
dict()
函式person = dict(name="小明", age=18, country="Taiwan")
print(person) # {'name': '小明', 'age': 18, 'country': 'Taiwan'}
person = {
"name": "小明",
"age": 18,
}
person["country"] = "Taiwan"
print(person) # {'name': '小明', 'age': 18, 'country': 'Taiwan'}
person = {
"name": "小明",
"age": 18,
}
person["age"] = 30
print(person) # {'name': '小明', 'age': 30}
在更新的部分可以操作更新一個或多個值,所以在更新實際上會更像是合併的概念,例如:
user = {
"name": "小明",
"age": 18,
"country": "Taiwan"
}
data = {
"name": "小華",
"age": 30,
}
user.update(data)
print(user) # {'name': '小華', 'age': 30, 'country': 'Taiwan'}
不過在這邊要特別注意,當原本就存在的鍵 key
要進行增加或是更新時,新資料會覆蓋掉舊有的資料。
person = {
"name": "小明",
"age": 18,
}
print(len(person)) # 2
person = {
"name": "小明",
"age": 18,
}
person.clear()
print(person) # {}
person = {
"name": "小明",
"age": 18,
}
person.pop("name")
print(person) # {'age': 18}
暴力解就對了!直接上 code
user = {
"name": "小明",
"age": 18,
"country": "Taiwan"
}
del user
print(user) # NameError: name 'user' is not defined. Did you mean: 'super'?
在 Python 中,**
是用來解包 unpack
字典的運算子,功能不外乎就是將字典的鍵值對
取出來,並將他們作為關鍵參數傳入函式或是在另一個字典中合併使用。
有關於函式用法在之後會再介紹。
dict1 = {
"a": 1,
"b": 2,
}
dict2 = {
"b": 3,
"c": 4,
"d": 5,
}
merged = {**dict1, **dict2}
print(merged) # {'a': 1, 'b': 3, 'c': 4, 'd': 5}
那麼今天就介紹到這,明天見ㄅㄅ!