hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

小白学 Python(13):基本数据结构(字典)(下)

2019-11-18杂谈搜奇网16°c
A+ A-

人生苦短,我选Python

前文传送门

小白学 Python(1):开篇

小白学 Python(2):基本数据类型(上)

小白学 Python(3):基本数据类型(下)

小白学 Python(4):变量基本操纵

小白学 Python(5):基本运算符(上)

小白学 Python(6):基本运算符(下)

小白学 Python(7):基本流程掌握(上)

小白学 Python(8):基本流程掌握(下)

小白学 Python(9):基本数据结构(列表)(上)

小白学 Python(10):基本数据结构(列表)(下)

小白学 Python(11):基本数据结构(元组)

小白学 Python(12):基本数据结构(字典)(上)

字典内置函数 & 要领

(假如是来看脸色包的,能够退出去了,本篇无脸色包)

字典供应了许多内置要领对字典举行操控。

老例子,一边看代码一边引见。

dict.keys()

作用: 返回一个迭代器,能够运用 list() 来转换为列表,该列表包括一切的 key。

dict1 = {'name': 'geekdigging', 'age': 2}

print(dict1.keys())
print(list(dict1.keys()))
print(type(list(dict1.keys())))

效果以下:

dict_keys(['name', 'age'])
['name', 'age']
<class 'list'>

dict.values()

作用: 返回一个迭代器,能够运用 list() 来转换为列表,该列表包括一切的 value 。

print(dict1.values())
print(list(dict1.values()))
print(type(list(dict1.values())))

效果以下:

dict_values(['geekdigging', 2])
['geekdigging', 2]
<class 'list'>

dict.items()

作用: 以列表返回可遍历的(键, 值) 元组数组。

print(dict1.items())
print(list(dict1.items()))
print(type(list(dict1.items())))

效果以下:

dict_items([('name', 'geekdigging'), ('age', 2)])
[('name', 'geekdigging'), ('age', 2)]
<class 'list'>

dict.get(key, default=None)

作用: 返回指定键的值,假如值不在字典中返回 default(None) 值。

print(dict1.get('name'))
print(dict1.get('geekdigging'))

效果以下:

geekdigging
None

由于 geekdigging 并不是字典中的 key ,所以返回了默认值 None 。

dict.pop(key[,default])

作用: 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必需给出。

print(dict1.pop('age'))
print(dict1)

效果以下:

2
{'name': 'geekdigging'}

dict.setdefault(key, default=None)

作用: 和get()相似, 但假如键不存在于字典中,将会增加键并将值设为 default 。

dict1.setdefault('age')
print(dict1)

效果以下:

{'name': 'geekdigging', 'age': None}

dict.update(dict2)

作用: 把字典 dict2 的键/值对更新到 dict 里。

dict2 = {'sex': 'male'}
dict1.update(dict2)
print(dict1)

效果以下:

{'name': 'geekdigging', 'age': None, 'sex': 'male'}

dict.clear()

作用: 删除字典内一切元素。

注重: 删除字典内一切元素,并不是删除字典。

dict2.clear()
print(dict2)

效果以下:

{}

dict.copy()

作用: 返回一个字典的浅复制。

注重: 这里的 copy 是浅 copy ,有编程履历的同砚预计明白起来并没有难度。无履历的同砚且听我逐步道来,浅拷贝本质上拷贝的是一个援用,并不是拷贝了全部内容,举例子的话就好比我有一个苹果,而且浅拷贝了一个给小明,我咬了一口我的苹果,然则小明发明他的苹果也被咬了一口。

dict3 = {'name': 'geekdigging', 'age': [1, 2, 3]}
# 浅拷贝: 援用对象
dict4 = dict3
print(id(dict3))
print(id(dict4))
# 浅拷贝:深拷贝父对象(一级目次),子对象(二级目次)不拷贝,照样援用
dict5 = dict3.copy()
dict3['age'].remove(1)
print(dict3)
print(dict5)
print(id(dict3))
print(id(dict5))

效果以下:

2418990911064
2418990911064
{'name': 'geekdigging', 'age': [2, 3]}
{'name': 'geekdigging', 'age': [2, 3]}
2418990911064
2418991599688

这个示例明白稍有费劲儿,不着急,逐步品,细品。

假如我想全都深 copy ,怎么做呢?

能够引入 copy 模块完成。

import copy

dict3 = {'name': 'geekdigging', 'age': [1, 2, 3]}
dict6 = copy.deepcopy(dict3)
dict3['age'].remove(1)
print(dict3)
print(dict6)
print(id(dict3))
print(id(dict6))

效果以下:

{'name': 'geekdigging', 'age': [2, 3]}
{'name': 'geekdigging', 'age': [1, 2, 3]}
2418991602168
2418991602008

首次打仗的同砚,以上两个示例并不好明白,假如在明白上有题目的能够在民众号留言问我。

陈词滥调再多 BB 一句,请列位同砚亲自动手实践一下示例代码。

示例代码

本系列的一切代码小编都邑放在代码治理堆栈 Github 和 Gitee 上,轻易人人取用。

示例代码-Github

示例代码-Gitee

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
小白学 Python(13):基本数据结构(字典)(下)

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282221.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>