為了方便大家拷貝筆記,本文采用md源碼格式
[TOC]
# dict 字典
1. 作用:存放多個值,key:value,存取速度快
1. 定義:key必須是不可變類型(int,float,str,tuple),value可以為任意類型
## 基本功能
```
1、按key取值,可存可取
info={'name':'lqx','age':18,'sex':'male'}
print(info['name'])
info['name']='yft'
print(info)
2、切片(顧頭不顧尾,步長)
my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
print(my_girl_friends[1:3]) #從第一個值取到第3個值(注意這裡是有第0個值的)
print(my_girl_friends[0:3:1]) #從第0個值開是到第3個值,步長為1
print(my_girl_friends[0:1:2]) #從第0個值開始到第1個值結束,跳1個取
print(my_girl_friends[3:1:-1]) #從第3個值開始取到第1個值,反向取
print(my_girl_friends[-1::-1]) #倒序取值,取全部值,
print(my_girl_friends[0::-1]) #倒序取值,取第0個值
3、長度
print(len(info)) #這裡的長度是字典中的元素,key:values是一個元素
4、成員運算in和not in
info={'name':'lqx','age':18,'sex':'male'}
print('lqx' in info)
print('name' in info) #這裡的成員運算只能取key
False
True
5、循環
for item in info: #這裡循環是循環的是dict中的key
print(item)
```
## clear
>clear(self)
清空
```
D = {'a':'v1','b':'v2'}
D.clear()
print(D)
結果:{}
```
## copy
>copy(self) 淺拷貝
```
D = {'a':'v1','b':'v2'}
v = D.copy()
print(v)
結果:{'a':'v1','b':'v2'}
```
## fromkeys
>fromkeys(*args, **kwargs)
循環keys,填充values,生成字典
```
D = dict.fromkeys(['k1','k2','k3'],123)
print(D)
結果:{'k2': 123, 'k3': 123, 'k1': 123}
D = dict.fromkeys(['k1','k2','k3'],[1,])
D.['k1'].append(222)
print(D)
結果:{'k3': [1, 222], 'k2': [1, 222], 'k1': [1, 222]}
```
## get
>get(self, k, d=None)
根據key獲取指定的value;不存在不報錯
```
D = {'a':'v1','b':'v2'}
v = D.get('a')
print(v)
結果:v1
v = D.get('s','不存在')
print(v)
結果:不存在
```
## items
>items(self)
取鍵值對
```
D = {'a':'v1','b':'v2'}
v = D.items()
print(v)
結果:dict_items([('a', 'v1'), ('b', 'v2')])
```
## keys
>keys(self)
取keys
```
D = {'a':'v1','b':'v2'}
v = D.keys()
print(v)
結果:dict_keys(['a', 'b'])
```
## pop
>pop(self, k, d=None)
刪除並獲取對應的value值,如果沒有找到key,給定返回d,否則引發KeyError
```
D = {'a':'v1','b':'v2'}
v = D.pop('a')
print(v)
結果:v1
print(D)
結果:{'b':'v2'}
```
## popitem
>popitem(self)
隨機刪除鍵值對,並獲取到刪除的鍵值
```
D = {'a':'v1','b':'v2'}
k,v = D.popitem()
print(k,v)
結果:a,v1
print(D)
結果:{'b':'v2'}
```
## setdefault
>setdefault(self, k, d=None)
增加,如果存在則不做操作
```
D = {'a':'v1','b':'v2'}
D.setdefault('c','v3')
print(D)
結果:{'a':'v1','b':'v2','c':'v3'}
```
## update
>update(self, E=None, **F)
批量增加或修改
```
D = {'a':'v1','b':'v2'}
D.update({'c':'v3','a':'v24'})
print(D)
結果:{'a':'v24','b':'v2','c':'v3'}
```
## values
>values(self)
取values
```
D = {'a':'v1','b':'v2'}
v = D.values()
print(v)
結果:dict_values(['v1', 'v2'])
```
# dict類型總結
1. 可以存多個值,值都可以是任意類型
1. 無序
1. 可變:值變,id不變,可變==不可hash
閱讀更多 藝術生的運維路 的文章