天天看點

python 字典(dict)基礎使用心得dict

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']}