Python自動化運(yùn)維開發(fā)----基礎(chǔ)(九)字典

1.字典的定義

成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、甕安網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為甕安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

使用大括號包含,每個元素使用key:value的格式,元素之間用逗號隔開

定義一個字典

>>> user_dict = {'id' : 1, 'name' : 'likuan', 'sex' : '男', 'tel' : '18829787559', 'addr' : '西安市'}
>>> user_dict

2.字典的操作

(1)字典的訪問   字典名[key]

>>> user_dict['name']
'likuan'

(2)字典的更新  key值存在就更新

>>> user_dict
{'id': 1, 'name': 'likuan', 'sex': '男', 'tel': '18829787559', 'addr': '西安市'}
>>> user_dict['sex'] = '女'
>>> user_dict
{'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市'}

(3)字典的新增

>>> user_dict['age'] = 25
>>> user_dict
{'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市', 'age': 25}

(4)字典的刪除

>>> del user_dict['age']
>>> user_dict
{'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市'}

3.字典進(jìn)行max,min , len , in , not in 操作

(1)max函數(shù)(對key進(jìn)行操作)

>>> max(user_dict)
'tel'

(2)min函數(shù)(對key進(jìn)行操作)

>>> min(user_dict)
'addr'

(3)len函數(shù)(獲取字典的長度)

>>> len(user_dict)
4

(4)in (判斷key是否在字典內(nèi))

>>> 'sex' in user_dict
True

(5)not in 

>>> 'sex' not  in user_dict
False

(6)遍歷字典的value(key是不可變的)

>>> for i in user_dict:
...     print(i,user_dict[i])
... 
id 1
name likuan
sex 女
tel 18829787559
addr 西安市

4.字典的三種類型轉(zhuǎn)換

第一種 空字典

>>> b = dict()
>>> b
{}

第二種

>>> c = dict(a=1, b=2)
>>> c
{'a': 1, 'b': 2}

第三種 可迭代對象,第一個作為key,第二個作為value

>>> a = dict([['a',1],['b',2]])
>>> a
{'a': 1, 'b': 2}

5.小知識點(diǎn)

變量交換

>>> a = 1
>>> b = 2
>>> a, b = b, a
>>> a
2
>>> b
1

元組的話可以省略括號

>>> b,a
(1, 2)

通過元組給變量賦值

a,b,c = (1,2,3)
a,b,c = 1,2,3

通過列表給字典賦值

>>> ll = [['a',1],['b',2]]
>>> dd = {}
>>> for a,b in ll:
...     dd[a]=b
... 
>>> dd
{'a': 1, 'b': 2}

6.小例子

eg1: 統(tǒng)計票數(shù)按列表中的名字統(tǒng)計次數(shù)

#!/usr/bin/python
users = ['錐子', '錐子', '李寬', '李寬', '李密']
result = {}
for user in users:
    if user not in result:
        result[user] = 1
    else:
        result[user] += 1
print(result)

eg2:統(tǒng)計一串字符串中的字母出現(xiàn)的個數(shù)

#!/usr/bin/python
artile = '''
The Zen of Python, by Tim Peters
The Zen of Python, by Tim Peters
The Zen of Python, by Tim Peters
 
The Zen of Python, by Tim Peters
'''
 
artile_string = {}
for i in artile:
    if not i.isalpha():
        continue
    if i not in artile_string:
        artile_string[i] = 1
    else:
        artile_string[i] += 1
print(artile_string)

7.字典函數(shù)

(1)clear 函數(shù)   清空字典

>>> b
{'t': 2, 'e': 1, 's': 1}
>>> b.clear()
>>> b
{}

(2)copy 函數(shù)   復(fù)制一個字典,會生成一個新的字典和原來的字典在內(nèi)存中的位置不一樣,如果通過 = 賦值的字典,在內(nèi)存中的位置不會改變

>>> b = {'a': 1,'b':2}
>>> b
{'a': 1, 'b': 2}
>>> a = b.copy()
>>> a
{'a': 1, 'b': 2}
>>> id(a),id(b)
(140695559209896, 140695559211480)

(3)pop 函數(shù)

pop.(‘a(chǎn)’)  移除相應(yīng)的key值 并返回value

pop.(‘a(chǎn)’,‘z’) 移除的key值不存在返回Z

>>> a
{'a': 1, 'b': 2, 'c': 3}
>>> a.pop('c')
3
>>> a.pop('c','False')
'False'

(4)popitem 函數(shù)  隨機(jī)返回  第一個返回 key  第二個返回 value

(5)keys 函數(shù)   返回一個由key組成的list

>>> a.keys()
dict_keys(['a', 'b'])

循環(huán)遍歷 key

>>> a
{'a': 1, 'b': 2}
>>> a.keys()
dict_keys(['a', 'b'])
>>> for i in a.keys():
...     print(i)
... 
a
b

(6)values 函數(shù)  由所有的 value 組成的一個 list

>>> a.values()
dict_values([1, 2])

循環(huán)遍歷所有的values

>>> for i in a.values():
...     print(i)
... 
1
2

(7)items 函數(shù)  生成一個可迭代的列表

>>> a.items()
dict_items([('a', 1), ('b', 2)])
>>> for i in a.items():
...     print(i)
... 
('a', 1)
('b', 2)

循環(huán)打印key和value

>>> for key,value in a.items():
...     print(key,":",value)   
... 
a : 1
b : 2

(8)formkeys函數(shù)  用一個可迭代的對象生成一個字典  第一個參數(shù)作為key  第二個參數(shù)作為value

>>> dict.fromkeys(range(10))
{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
>>> dict.fromkeys(range(10),1)
{0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1}

(9)update函數(shù)  批量更新和添加字典,存在更新,不存在添加

>>> a
{'a': 1, 'b': 2}
>>> a.update({'b':3,'c':4}) 
>>> a
{'a': 1, 'b': 3, 'c': 4}

(10)get函數(shù) 通過key獲取value值,key 存在返回value , 不存在返回None 或者自定義值

>>> a.get('c')
4
>>> a.get('d',False)
False

(11)setdafault函數(shù)  如果 key存在則彈出原來的value,如果key 不存在添加key并且彈出設(shè)置的value

>>> a
{'a': 1, 'b': 3, 'c': 4}
>>> a.setdefault('a',2)
1
>>> a.setdefault('d',2)
2
>>> a
{'a': 1, 'b': 3, 'c': 4, 'd': 2}

eg:使用setdefault函數(shù)做之前的統(tǒng)計

#!/usr/bin/python
users = ['錐子', '錐子', '李寬', '李寬', '李密']
result = {}
for user in users:
    result[user] = result.setdefault(user,0) + 1
print(result)

分享題目:Python自動化運(yùn)維開發(fā)----基礎(chǔ)(九)字典
網(wǎng)址分享:http://muchs.cn/article10/jcgpdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司網(wǎng)站設(shè)計公司、定制開發(fā)營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化