>[info] 程序中,大多數的參數都以字典的形式存儲。
[TOC]
<br>
### 字典的定義
字典dictionary是一種以key-value鍵值對的形式存儲數據,key是不可變的,可以是字符串,數字或元組,而value可以是任意一種數據類型。
#### 字典的賦值
```python
person={'name':'Milton','age':18,'hobby':['basketball','football']}
```
#### 字典的讀取
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person['name']
'Milton'
```
#### 字典值的修改
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person['name']='Cherish'
>>> person
{'name': 'Cherish', 'age': 18, 'hobby': ['basketball', 'football']}
```
### 字典常用方法
#### clear():清除字典中所有元素
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person
{'name': 'Milton', 'age': 18, 'hobby': ['basketball', 'football']}
>>> person.clear()
>>> person
{}
```
#### copy():淺拷貝
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person2=person.copy()
>>> person2
{'name': 'Milton', 'age': 18, 'hobby': ['basketball', 'football']}
>>> person['name']='Cherish'
>>> person
{'name': 'Cherish', 'age': 18, 'hobby': ['basketball', 'football']}
>>> person2
{'name': 'Milton', 'age': 18, 'hobby': ['basketball', 'football']}
>>>
```
注意區分copy()與`=`賦值的區別,慎用`=`
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person2=person
>>> person['name']='Cherish'
>>> person
{'name': 'Cherish', 'age': 18, 'hobby': ['basketball', 'football']}
>>> person2
{'name': 'Cherish', 'age': 18, 'hobby': ['basketball', 'football']}
```
#### dict.fromkeys(seq[, value]):以一個序列中的值作為key,創建字典
```cmd
>>> person=['Milton','Cherish']
>>> detail=dict.fromkeys(person,{'sex':'M'})
>>> detail
{'Milton': {'sex': 'M'}, 'Cherish': {'sex': 'M'}}
```
#### get(k, d=None):根據key,獲取元素值
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.get('name')
'Milton'
>>> person.get('score',99)
99
```
#### items():以列表返回可遍歷的(鍵, 值) 元組數組
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.items()
dict_items([('name', 'Milton'), ('age', 18), ('hobby', ['basketball', 'football'])])
>>>
```
#### keys():以列表返回所有的key
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.keys()
dict_keys(['name', 'age', 'hobby'])
>>>
```
#### values():以列表返回字典中的所有值
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.values()
dict_values(['Milton', 18, ['basketball', 'football']])
```
#### pop(k, d=None):刪除key所對應的值,返回被刪除的值。
key值必須給出。 否則,返回default值。
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.pop('age')
18
>>> person
{'name': 'Milton', 'hobby': ['basketball', 'football']}
>>>
```
#### popitem():隨機返回并刪除字典中的一對鍵和值。
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.popitem()
('hobby', ['basketball', 'football'])
>>> person
{'name': 'Milton', 'age': 18}
```
#### setdefault(self, k, d=None):設置默認值
如果對應的key不存在,則修改字典,并返回設置的默認值
如果對應的key存在,則不修改字典,直接返回原來的值
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.setdefault('name','Cherish')
'Milton'
>>> person
{'name': 'Milton', 'age': 18, 'hobby': ['basketball', 'football']}
>>> person.setdefault('sex','M')
'M'
>>> person
{'name': 'Milton', 'age': 18, 'hobby': ['basketball', 'football'], 'sex': 'M'}
```
#### update(self, E=None, **F):用一個字典更新當前字典
```cmd
>>> person={'name':'Milton','age':18,'hobby':['basketball','football']}
>>> person.update({'name':'Cherish','sex':'female'})
>>> person
{'name': 'Cherish', 'age': 18, 'hobby': ['basketball', 'football'], 'sex': 'female'}
```
<hr style="margin-top:100px">
:-: 
***微信掃一掃,關注“python測試開發圈”,了解更多測試教程!***
- 前言
- chapter01_開發環境
- chapter02_字符串的使用
- chapter03_列表的使用
- chapter04_字典的使用
- chapter05_數字的使用
- chapter06_元組的使用
- chapter07_集合的使用
- chapter08_輸入輸出
- chapter09_控制流程
- chapter10_實例練習_登錄1
- chapter11_python函數入門
- chapter12_python中的類
- chapter13_輕松玩轉python中的模塊管理
- chapter14_掌握學習新模塊的技巧
- chapter15_通過os模塊與操作系統交互
- chapter16_子進程相關模塊(subprocess)
- chapter17_時間相關模塊(time & datetime)
- chapter18_序列化模塊(json)
- chapter19_加密模塊(hashlib)
- chapter20_文件的讀與寫
- chapter21_階段考核2_登錄
- chapter22_小小算法挑戰(排序&二分法)
- chapter23_用多線程來搞事!
- chapter24_HTTP接口請求(requests)
- chapter25_接口測試框架(pytest)
- chapter26_階段考核3_HTTP接口測試
- chapter27_HTML解析(pyquery)
- chapter28_階段考核4_爬蟲下載網易汽車
- chapter29_python中的那些編碼坑
- chapter30_MySQL數據庫操作
- chapter31 高級特性_迭代器與生成器
- chapter32 高級特性_裝飾器
- chapter33 高級特性_列表處理