python字典dict的常用函数,及迭代循环

上一节我们介绍了python字典的创建,及增删改查等基本操作,这一节我们将继续介绍python字典的一些常用函数的基本用法,比如items()、keys()、values()、pop()、get()、copy()等等,之后再介绍一下字典的迭代及for循环中的应用。


items()函数

这是字典迭代中经常用到的一个函数,可以用列表返回可遍历的键值对元组,如下示例:

items()示例

>>> a = dict(网站='至简计算', 域名='x1y1z1.com',教程='python全栈')
>>> a
{'网站': '至简计算', '域名': 'x1y1z1.com', '教程': 'python全栈'}
>>> a.items() #返回一个可迭代的列表,其中的元素为键值对元组
dict_items([('网站', '至简计算'), ('域名', 'x1y1z1.com'), ('教程', 'python全栈')])

keys()函数

keys()函数也是python字典在实战应用中非常经常用到的函数,以列表的形式返回字典所有的键,当我们只是需要字典的键时,就可以用到这个函数了。

keys()示例

>>> a = dict(网站='至简计算', 域名='x1y1z1.com',教程='python全栈') 
>>> a.keys()
dict_keys(['网站', '域名', '教程'])

values()函数

有keys()函数,当然也应当有相对应的values()函数,该函数以列表的形式返回字典中的所有的值。

values()示例

>>> a = dict(网站='至简计算', 域名='x1y1z1.com',教程='python全栈') 
>>> a.values()
dict_values(['至简计算', 'x1y1z1.com', 'python全栈'])

pop()函数

当我们需要删除掉字典中的某个键值对时,可以使用pop( key )函数,并返回指定key的值,与上一节介绍的del有所不同,用法当然也不同,比如如下示例:

pop()示例

>>> a = dict(x='python', y='Django', z='Machine Learning')
>>> a
{'x': 'python', 'y': 'Django', 'z': 'Machine Learning'}
>>> value = a.pop('z')
>>> print('you deleted %s , are you sure ?' %value) #很多软件或APP在删除操作时会弹出提示我们是否真的删除的提示框,而del没有返回值,无法用于提示
you deleted Machine Learning , are you sure ?

popitem()函数

popitem()函数用于删除字典最后一个键值对,并以元组的形式返回该键值对。

popitem()示例

>>> a = dict(x='python', y='Django', z='Machine Learning') 
>>> a.popitem()
('z', 'Machine Learning')

copy()函数

用于复制字典,并返回该字典。

copy()示例

>>> a = dict(x='1', y='2', z='3')
>>> a
{'x': '1', 'y': '2', 'z': '3'}
>>> b = a.copy()
>>> b
{'x': '1', 'y': '2', 'z': '3'}
>>> b['x'] = 'abc' #修改键'x'上的值
>>> b
{'x': 'abc', 'y': '2', 'z': '3'}
>>> a
{'x': '1', 'y': '2', 'z': '3'} #通过copy(),a的元素不发生改变
>>> c = a #直接赋值,实际上变量c只是引用了a的内存地址
>>> c
{'x': '1', 'y': '2', 'z': '3'}
>>> c['x'] = 'def'
>>> c
{'x': 'def', 'y': '2', 'z': '3'}
>>> a
{'x': 'def', 'y': '2', 'z': '3'} #通过直接赋值,a的元素的值跟着发生改变

get()函数

这也是一个比较常用的函数,尤其是在Django开发之中,当然,Django封装的get()函数和python封装的get()函数还是有所区别的,但原理相同。在python当中,get()可以返回指定键的值,如果该键不存在在该字典,就返回默认default的值。

get()示例

>>> a = dict(x='1', y='2', z='3')
>>> b = a.get('x')
>>> b
1
>>> c = a.get('d', 'abc') #第二个参数为default值,即当第一个参数不存在与字典之中时,返回第二个参数值,且字典保持不变,与下面的setdefault()函数区别开来
>>> c
'abc'
>>> a
{'x': '1', 'y': '2', 'z': '3'}

setdefault()函数

setdefault(key, default),但字典中的键中不存在第一个参数key时,便可通过这个函数为字典添加这个键,并以default为该键的值,并返回该default的值。

setdefault()示例

>>> a = dict(x='python', y='Django', z='Machine Learning')
>>> a.setdefault('d', 'Deep Learning')
'Deep Learning' #返回default的值
>>> a #字典a已经添加了新的键值对
{'x': 'python', 'y': 'Django', 'z': 'Machine Learning', 'd': 'Deep Learning'}

update()函数

update(dict)可以将一个字典中的键值对更新到另一个字典当中。

update()示例

>>> b = dict(至简计算='x1y1z1.com')
>>> b
{'至简计算': 'x1y1z1.com'}
>>> a = dict(x='python', y='Django', z='Machine Learning')
>>> b.update(a) #将字典a的更新到字典b里头去
>>> b
{'至简计算': 'x1y1z1.com', 'x': 'python', 'y': 'Django', 'z': 'Machine Learning'}

字典的迭代循环

python的字典也是可以迭代的,下面我们将用items()函数配合for循环将字典中的键值对打印出来,大家可以用jupyter notebook。

迭代循环示例

In[1] : a = {'至简计算': 'x1y1z1.com', 'x': 'python', 'y': 'Django', 'z': 'Machine Learning'}
for key,value in a.items():
    print('%s : %s' %(key,value))

至简计算 : x1y1z1.com
x : python
y : Django
z : Machine Learning

python的字典dict的内容就暂且介绍到这,下一节我们将继续介绍python的另一种数据类型——集合set。


全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.