鱼C论坛

 找回密码
 立即注册
查看: 2275|回复: 2

[技术交流] 字典函数clear()&get()

[复制链接]
发表于 2017-7-18 16:56:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

通过help()可以看出,clear函数是一个清空字典中所有元素的操作
  1. >>> help(dict.clear)
  2. Help on method_descriptor:

  3. clear(...)
  4. D.clear() -> None.  Remove all items from D.
复制代码

Clear的含义是将字典清空,得到的是一个空的字典,跟del有很大区别,del是指从内存中删除,也就是说,不复存在。
  1. >>> a_1 = {'key_1':'value_1'}
  2. >>> a_1.clear()
  3. >>> a_1
  4. {}
复制代码

复制代码
如果只是想要清空一个字典,还可以使用a_1 = {}这种方法

get()函数

  1. >>> a_1 = {'name':'python'}
  2. >>> a_1.get('name')
  3. 'python'
复制代码


使用get能从字典中获取一个键的值
同理
  1. >>> a_1['name']
  2. 'python'
复制代码
这样也可以获得键值,但是如果键不在字典内的时候,就有了区别
  1. >>> print(a_1.get('show'))
  2. None
  3. >>> a_1['show']
  4. Traceback (most recent call last):
  5.   File "<pyshell#14>", line 1, in <module>
  6.     a_1['show']
  7. KeyError: 'show'
复制代码
也就是说get函数,不会报错,但是第二种方法却会报错
还有一种情况
  1. >>> a_1 = {'name':'python'}
  2. >>> new = a_1.get('show','google')
  3. >>> new
  4. 'google'
  5. >>> a_1
  6. {'name': 'python'}
复制代码
使用a_1.get(),如果不能得到键‘show’的值,那么就会把google的值返回
但是这样做,并没有影响原来的字典。
另外一个跟get在功能上相近的函数是setdefault()
  1. >>> a_1 = {'name':'python'}
  2. >>> a_1.setdefault('name')
  3. 'python'
  4. >>> a_1.setdefault('show','google')
  5. 'google'
  6. >>> a_1
  7. {'name': 'python', 'show': 'google'}
复制代码
跟get不一样的是,setdefault()在返回字典中未含有的键时,会在原有的字典中把这个键值加进去。

评分

参与人数 2荣誉 +4 鱼币 +7 收起 理由
康小泡 + 3 支持楼主!
小甲鱼 + 4 + 4 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-18 19:23:17 | 显示全部楼层
内容详细,排版也很不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-18 08:15:51 | 显示全部楼层
小甲鱼老师在《零基础~~》里面提到不要使用将一个字典指向空字典这样的方法来清空字典,万一字典里面是账号密码的话这样子就有可能造成泄露。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 01:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表