栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python字典及操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python字典及操作

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

字典&集合 字典
  • 字典以键值对形式存在:{ key: value }
  • 其中key值会进行hash运算,生成hash表,所以字典的访问效率要优于普通序列数据类型(列表,元组)
  • key值由于需要通过hash,则一些可变数据类型不可以做key值,而value的类型没有限制,可以是任意数据类型
  • 由于进行了hash运算,那么在内存中字典其中的数据元素是无序的,没有办法进行一些像索引和切片一样的操作
    (但是在**Python3.6后,字典数据类型已经被更改为有序数据类型**;查阅地址;(from collections import OrderedDict))
  • 字典中的key值是唯一的
  • 字典为可变数据类型

创建方式
  • 大括号包裹键值对:mydict = {1:‘a’ , 2:‘b’ }
>>> mydict = {1:'a',2:'b'}
>>> mydict
{1: 'a', 2: 'b'}

  • 工厂方法创建:mydict = dict(([1,‘a’],[2,‘b’]))
>>> mydict = dict(([1,'a'],[2,'b']))
>>> mydict
{1: 'a', 2: 'b'}

  • 字典内建方法:mydict = dict.fromkeys([1,2],‘a’)
>>> mydict = dict.fromkeys([1,2],'a')
>>> mydict
{1: 'a', 2: 'a'}
#这样可以批量创建key值,但是缺点也暴露出来无法单独分配value值

访问字典
  • 获得所有key值:dict.keys()
>>> mydict = {1:'a',2:'b'}
>>> mydict.keys()
dict_keys([1, 2])

  • 获取所有value值:dict.values()
>>> mydict = {1:'a',2:'b'}
>>> mydict.values()
dict_values(['a', 'b'])

  • 通过key值获取value dict[key] ,这个操作类似索引和切片,但实际为字典访问value值,所以不要混淆
    • 注意:在访问一个不存在的key值会引发KeyError的错误
>>> mydict = {1:'a',2:'b'}
>>> mydict[1]
'a'
>>> mydict[2]
'b'
>>> mydict[3]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 3

  • 通过get方法获取,获取不到返回none或者get方法所传递的参数默认值
dict.get('key',default)
  • 迭代获取其中key值:for key in dict: 迭代访问到的数据为key
>>> for key in mydict:
...     print(key)
...     print(mydict[key])
...
1
a
2
b

判断某key
  • 使用 in 还有 not in 判断是否在字典中有对应Key值,返回值为bool类型
>>> mydict = {1:'a',2:'b'}
>>> 1 in mydict
True
>>> 3 in mydict
False
#由于value值是可以重复的,所以判断value是没有意义的

更新字典
  • 通过对应key值访问到value值之后,重新赋值给它则可进行更新
>>> mydict = {1:'a',2:'b'}
>>> mydict[1] = 'c'
>>> mydict
{1: 'c', 2: 'b'}

删除
  • 使用del语句删除对应key值所关联的value值,会把这个键值对删除掉
>>> mydict = {1:'a',2:'b'}
>>> del mydict[1]
>>> mydict
{2: 'b'}

  • pop(obj) 函数删除字典中的某个值,并将被删除值返回
>>> mydict = {1:'a',2:'b'}
>>> mydict.pop(1)
'a'
>>> mydict
{2: 'b'}

清空字典
  • dict.clear() 函数会将这个字典重新成为一个新的空字典
>>> mydict = {1:'a',2:'b'}
>>> mydict.clear()
>>> mydict
{}
  • del语句直接删除字典变量,这也是最粗暴的方式
>>> mydict = {1:'a',2:'b'}
>>> del mydict
>>> mydict
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'mydict' is not defined
#字典被删除之后连变量都不见了
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/283695.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号