1. 程式人生 > >python:字典(dictionary)

python:字典(dictionary)

字典是可變列表型別,能夠儲存任意型別的物件,如字串列表元組等。

字典由鍵和值對應的鍵值對組成,字典也被稱作關聯陣列或雜湊表。

1. 字典的建立

1.變數名 = {}
2.變數名 = dict()
3.變數名 = {鍵:值,鍵:值…}
4.變數名 = dict( {鍵:值,鍵:值…} )
5.變數名 = dict(鍵 = 值,鍵 = 值…)
6.變數名 = dict( [ (鍵,值),(鍵,值),(鍵,值)… ] )
dict( [ [鍵,值],[鍵,值],[鍵,值]… ] )
dict( ( (鍵,值),(鍵,值),(鍵,值)… ) )
7.變數名 = dict( zip( ( 鍵,鍵,鍵…),(值,值,值…) ) )

2. 新增鍵值對

1. 直接新增
格式:字典名[‘鍵名’] = 值

dic = {'name':'張三','age':18}
dic['address']='北京'
print(dic)
# >>>{'name': '張三', 'age': 18, 'address': '北京'}

2. 利用setdefault()函式新增
格式:字典名.setdefault(‘鍵名’,‘值’)

dic = {'name':'張三','age':18}
dic.setdefault('address','北京')
print(dic)
# >>>{'name': '張三', 'age': 18, 'address': '北京'}

3. update()
①:
功能:新增鍵值對
格式:字典名.update(鍵=值)
返回:None
②:
功能:新增鍵值對
格式:字典名.update( {鍵:值} )
返回:None

3. 刪除鍵值對

1. pop()
功能:刪除指定的鍵值對
格式:字典名.pop(‘鍵名’)
返回:刪除的鍵的值

dic = {'name':'張三','age':18}
a = dic.pop('name')
print(dic)
print(a)
# >>>{'age': 18}
# >>>張三
  1. 帶初始值的pop()
    功能:刪除指定的鍵值對,如果該鍵值對不存在則返回預設值。
    格式:字典名.pop(‘鍵名’,‘初始值’)
    返回:如果鍵存在返回刪除的鍵的值,否則返回初始值
  2. popitem()
    功能:隨機刪除一對鍵值對,一般刪除末尾的鍵值對。
    格式:字典名.popitem()
    返回:以元組的型別返回刪除的鍵值對

4. 檢視鍵在字典中是否存在

1. in函式

dic = {'name':'張三','age':18,'address':'北京','score':'99'}
a = "張三" in dic
print(a)
#>>>False

2. get()
功能:查詢鍵在字典中是否存在,如不在返回自定義值
格式:字典名.get(‘指定的鍵名’,自定義值)
返回:鍵存在返回對應的值,不存在返回自定義值

5. 字典改變鍵名

1. 推薦
在pop()函式執行的瞬間,鍵對應的值依舊存在未刪除,只需要鍵對應該值就可。不過改變之後的字典的位置和之前有不同。

dic = {'a':1,'b':2}
dic['c'] = dic.pop('a')
print(dic)
# >>>{'b': 2, 'c': 1}

2.

該方式和第一種幾乎沒有差別,缺點是更麻煩。

dic = {'a':1,'b':2}
dic.update({'c':dic.pop('a')})
print(dic)
#>>> {'b': 2, 'c': 1}

3.

dic = {'a':1,'b':2}
dic['c'] = dic['a']
del dic['a']
print(dic)
#>>> {'b': 2, 'c': 1}

這三種方式原理相同,推薦使用第一種方法。

6. 傳入序列作為字典的鍵名

fromkeys()函式:
功能:傳入序列作為字典的鍵名,並給這些鍵賦予同一個值。
格式:字典名 = dict.fromkeys(序列,值)
返回:建立好的字典

a = dict.fromkeys((1,2,3,4,5,6,7,8,9),11)
print(a)
# >>>{1: 11, 2: 11, 3: 11, 4: 11, 5: 11, 6: 11, 7: 11, 8: 11, 9: 11}