python(三)字典,集合,可变与不可变对象(上)

1,字典

python中的字典,对!就是你想到的现实中的那个“字典”!

就实现方式来看,所有的这种map结构,本质上都是基于key-value这种结构,key就是你的“字典的索引部分”,value就是你的"字典的对应页下的数据"。

当然了,就现实情况而言,在一个”字典“中不可能出现一个索引指向两个页码,所以,在程序中为了保证这种唯一性,于是你所指定的key,其实在计算机内部都是经过计算之后才存储的,那么这种计算方法就是。。。。对!

就是它——哈希(Hash)!

2,字典的基本操作

python中的字典,大概就张成下面这个样子,其实你看了摘要就能想到它大概的长相,因为类似于JSON嘛~

132726_wxC0_1156660.png

忽然,灵机一动!

怎么从字典中取值呢?通过下标吗?

呵呵。。。。。。。。。。。。。。。。。。。。。。。。。。

key-value 结构,你说怎么取?

132943_16Hq_1156660.png

那么赋值呢?当然就像是这样:

133235_WUWI_1156660.png

两个问题!

2.1  字典中重复对一个 key 进行存储不同的值,后面的会把前面的冲掉?为什么?

2.2  字典的遍历方式跟 list 结构遍历有什么不一样?

当然,还要再补充一个,就是关于 print 后面的那个”逗号(,)“

python中 print 默认在输出之后会打印一个换行,那么如果你不想要这个换行,而是想输出个比较别致的东西,比如说”逗号“,怎么办?

懂了吧~

你看,dict 是不是也简单些,立马就会了 定义,遍历,读取,和增加呢!

什么?增加没说?????

你这是是逗我!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

那么,我们再来说说删除吧,就是这样:

134035_Svr0_1156660.png

一目了然,绝对的一目了然!

在周末之际,哦。。。不,在字典结束之际。。。。╮(╯▽╰)╭ 周末要加班( ⊙ o ⊙ )啊! 

如果说,从字典中读取一个不存在的 key 会怎么样?

134255_oXIU_1156660.png

你看,预料之中,它报错了!

那为了解决这个错误,也就是读一个 key 但是它又不再字典中,有什么办法,可以提前判断或者避免报错?

解决方案一:使用 in  

解决方案二:使用字典的操作函数 get

我们来尝试下第二种方法,因为第一种已经会了嘛 ^_^

134631_Bww4_1156660.png

你看,python给你屏蔽了那个错误,并且返回了python中一个比较特殊的基本数据类型:None,于是你就可以像这样做判断:

134837_eJ8l_1156660.png

你看,是不是也很简单!

最后,针对get方法还需要做个补充,就是你可以给它设置默认值!

就是说,假如你希望如果去字典中去读一个值,但是这个值又不存在,那么你希望 get 能够返回一个你指定的默认值,就像是这样:

135138_i0Eh_1156660.png

3,集合

集合,瞬间就要想到高一第一个学期学习的数学中的集合!

为什么我记得那么清楚?因为,那是我的痛。。。。。不说了,全是泪

上班了,,,,再聊!



转载于:https://my.oschina.net/u/1156660/blog/368528

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值