字典:
字典是“鍵值對”的無序可變序列,字典中的每個元素都是一個“鍵值對”,包含:"鍵對象"和“值對象”。可以通過"鍵對象“實現快速獲取、刪除、更新對應的“值對象”。
列表中我們通過“下標數字”找到對應的對象,字典中通過“鍵對象”找到對應的“值對象”。“鍵”是任意的不可變數據,比如整數、浮點數、字符串、元組。但是:列表、字典、集合、這些可變對象,不能作爲“鍵”,並且“鍵”不可重複。
“值”可以任意數據,並且可重複
字典的定義方式:
a={'name':'xxx','age':18}
字典的創建:
#1.可以通過{},dict()來創建字典對象
a={'name':'xx','age':18}
b=dict(name='xx',age=18)
c=dict([('name','xx'),('age',18)])
print(a)
>>>{'name': 'xx', 'age': 18}
print(b)
>>>{'name': 'xx', 'age': 18}
print(c)
>>>{'name': 'xx', 'age': 18}
d={} #空的字典對象
e=dict() #空的字典對象
#2.通過zip()創建字典,誰在前,誰爲鍵
k=['name','age']
v=['xxx',18]
d=dict(zip(k,v))
print(d)
>>>{'name': 'xxx', 'age': 18}
#3.通過fromkeys創建值爲空的字典
a=dict.fromkeys(['name','age'])
print(a)
>>>{'name': None, 'age': None}
字典元素的訪問(6種方法):
#先設定一個字典對象:
a={'name':'xxa','age':18}
#**1.**通過【鍵】獲取“值”,若鍵不在,則拋出異常
print(a['name'])
>>>xxa
print(a['sex'])
>>>Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'sex'
#**2.**通過get()方法獲取“值”,推薦使用。優點是:指點鍵不存在,返回None,也可以設定指定鍵不存在時mo默認返回對象,推薦使用get()獲取“鍵值對”
print(a.get('name'))
>>>xxa
print(a.get('sex','一個女人'))
>>>一個女人
#**3.**列出所有鍵值對
print(a.items())
>>>dict_items([('name', 'xxa'), ('age', 18)])
#**4.**列出所有的鍵,列出所有的值
print(a.keys())
>>>dict_keys(['name', 'age'])
print(a.values())
>>>dict_values(['xxa', 18])
#**5.**len()鍵值對的個數
print(len(a))
>>>2
#**6.**檢測一個“鍵”,是否存在字典中
if "name" in a:
print(True)
>>> True
添加:
給字典新增“鍵值對”。如果存在,則覆蓋舊的鍵值對,如果“鍵”不存在,則新增“鍵值對”
>>>a={"name":"天天向上","age":18}
>>>a['address']='同在地球村'
>>>a
{'name': '天天向上', 'age': 18, 'address': '同在地球村'}
修改:
使用update()將字典中所有鍵值對全部添加到舊字典對象上。如果“鍵”有重複,則直接覆蓋
>>>a={"name":"天天向上","age":18}
>>>b={'name':'hello',"sex":"男",}
>>>a.update(b)
>>>a
{'name': 'hello', 'gae': 18, 'address': '同在地球村', 'sex': '男'}
刪除:
字典中元素的刪除,可以使用del()方法,或者clear()刪除所有鍵值對,pop()刪除指定鍵值對,並返回對應的“值對象“
>>>a={"name":"天天向上","age":18, 'address': '同在地球村'}
>>>del(a['name'])
>>>a
{'age': 18, 'address': '同在地球村'}
>>>b=a.pop('age')
>>>b
18
隨機刪除:
popitem(),隨機刪除和返回該鍵值對,字典是“無序可變序列”,因此沒有第一個元素、最後一個元素的概念,popitem彈出隨機的項,因爲字典並沒有“最後的元素”或者其他有關順序的概念,若想一個接一個地移除並處理項,這個方法就非常有效(因爲不用獲取鍵的列表)
>>>a={"age":18, 'address': '同在地球村'}
>>>a.popitem()
('address', '同在地球村')
>>>a.popitem()
('age', 18)