dict
###1. 介紹
1.字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表
2.每個鍵與值用冒号隔開(:),每對用逗号,每對用逗号分割,整體放在花括号中
3.鍵必須獨一無二,如果同一個鍵被指派兩次,後一個值會被記住
4.一個鍵鍵對應的值可以有多個,值可以取任何資料類型,但必須是不可變的,如字元串,數或元組
dict1 = {'name': 'Alice', 'birth': '9102', 'phone': '8008208300'}
dict2 = { 'abc': 456 };
dict3 = { 'abc': 123, 98.6: 37 };
###2. 取值
>>>dict1["name"]
'Alice'
###3. 更新值
>>>dict1["name"]="tiaozizaixizao"
>>dict1
{'name': 'tiaozizaixizao', 'birth': '9102', 'phone': '8008208300'}
###4. 添加元素
>>>dict1["addkey"]="add value"
>>>dict1
{'name': 'tiaozizaixizao', 'birth': '9102', 'phone': '8008208300', 'addkey': 'add value'}
###5. 删除元素
#删除鍵值
>>>del dict1["name"]
>>>dict1
{'birth': '9102', 'phone': '8008208300', 'addkey': 'add value'}
#清空字典
>>>dict1.clear()
>>> dict1
{}
#删除字典
>>>del dict1
>>>dict1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dict1' is not defined
###6. 内置函數
####6.1 計算個字典的元素個數
>>>dict1={"name":'tiaozi',"age":'10'}
>>>len(dict1)
2
####6.2 輸出字典為可列印的字元串
>>>dict1={"name":'tiaozi',"age":'10'}
>>>str(dict1)
"{'name': 'tiaozi', 'age': '10'}"
####6.3 傳回輸入的變量類型
>>>dict1={"name":'tiaozi',"age":'10'}
>>>type(dict1)
<class 'dict'>
####6.4 字典的複制
>>>dict1={"name":'tiaozi',"age":'10'}
>>>dict2=dict1.copy()
>>>dict2
{'name': 'tiaozi', 'age': '10'}
>>>dict1["name"]="dict1 copy"
>>>dict1
{'name': 'dict1 copy', 'age': '10'}
>>dict2
{'name': 'tiaozi', 'age': '10'}
####6.5 按值建立字典
#不指定鍵的值,預設為None
>>>mylist=['name','age','phonenum']
>>>dict1=dict1.fromkeys(mylist)
>>> dict1
{'name': None, 'age': None, 'phonenum': None}
#指定鍵的值
>>>myvalue=10
>>>dict1=dict1.fromkeys(mylist,myvalue)
>>>dict1
{'name': 10, 'age': 10, 'phonenum': 10}
####6.6 擷取指定鍵的值,如果值不在字典中傳回預設值None
>>>dict1={"name":'tiaozi',"age":'10'}
#存在鍵,則傳回值
>>>dict1.get('name')
'tiaozi'
#不存在鍵,則無傳回值
>>> dict1.get('phonenum')
#存在鍵,和鍵值,則傳回鍵值
>>>dict1.get('name','tiaozi')
'tiaozi'
#不存在鍵,和鍵值,則傳回定義的鍵值
>>>dict1.get('phonenum','8008208320')
'8008208320'
####6.7 擷取字典中所有的鍵,傳回清單
>>>dict1={"name":'tiaozi',"age":'10'}
>>> dict1.keys()
dict_keys(['name', 'age'])
####6.8 擷取字典中所有的鍵和值,傳回list元組
>>>dict1={"name":'tiaozi',"age":'10'}
>>> dict1.items()
dict_items([('name', 'tiaozi'), ('age', '10')])
####6.9 傳回字典中所有的鍵值,為清單
>>>dict1={"name":'tiaozi',"age":'10'}
>>>dict1.values()
dict_values(['tiaozi', '10'])
####6.10 兩個字典合并
>>>dict1={"name":'tiaozizaixizao',"age":'10'}
>>>dict2={"phonenum":'8008208320'}
>>>dict3={"learn":['math','english','computer science']}
>>>dict1.update(dict2)
>>>dict1
{'name': 'tiaozizaixizao', 'age': '10', 'phonenum': '8008208320'}
>>>dict1.update(dict3)
>>>dict1
{'name': 'tiaozizaixizao', 'age': '10', 'phonenum': '8008208320', 'learn': ['math', 'english', 'computer science']}