python字典数据类型_python基础篇:最重要的数据类型——dict字典

字典(dict, dictionary的简写)是Python中另一个非常重要的内置数据类型,是Python中映射类型(Mapping Type),它把“键”(key)映射到“值”(value),通过key可以快速找到value,它是一种“键值对”(key-value)数据结构。

“键”,可以是任意不可变的类型对象(可以做hash,即具有

hash()

eq

()方法的对象),通常是字符串和数字,同一个字典中键是唯一的。但不能是list,因为list可以通过索引、切片、append()和extend()方法改变其值。

“值”,可以是任何类型的数据。

Python字典(dict)的创建

字典可以通过dict()或一对花括号创建一个空字典: d = {}。花括号内可以放用逗号,隔开的多个键值对,键值对用冒号:隔开:

上面最后一个例子d4的初始化中,键都是'a',所以得到的字典只有一个键,它的值是最后一次赋值3.

dict()创建字典对象

dict()无参数时生成空字典,也可以通过传入参数进行初始化。传入参数有两种形式:

一种是,序列型数据list或tuple,它每个元素必须又含有两个子元素,以满足key-value对;

一种是,name=value形式的参数。

见下面的例子:

字典推导式(Dict Comprehension)

类似列表推导式,我们可以通过一个for循环表达式来创建一个字典:

list不能做字典的key,但是可以做value:

Python字典(dict)的访问

(1)通过键访问其值

列表可以通过其索引访问元素,字典就是通过键访问对应的值,形式类似列表那样用方括号,只不过用“键”替代了“索引”。方法是字典对象名称加方括号括起来的键名,比如:mydict['a']。如果某个键不在字典对象中,通过方括号访问就会报错:

(2)通过get(key)方法访问其值

给get()传入键作为参数,就可以得到value,如果key不存在则返回None。

Python字典(dict)的更改

详见下面的示例代码:

Python字典(dict)相关的内置函数

Python内置了一些函数可以用于操作字典,它们是:

len()

返回字典的长度,是键的个数,也是值的个数,也是键值对的个数。空字典的长度是0

any()和all()

类似于对列表、tuple的操作,不过这两个函数检验的是字典的键(key)。

any(): 只要字典有一个键为True则返回True;

all(): 只有字典的所有键都为True才返回True;

不过,空字典有意思,它没有键却认为是所有键都为True,all({})返回True。

sorted()

跟操作列表、tuple的效果一样,它把字典的所有key当做一个列表(或元组)进行排序

in 运算符

跟列表,元组一样,in用来检验一个key是不是在字典中:

Python字典(dict)的内置方法:

(1)keys()

返回键(key)的view对象(类型是:dict_keys)。这个view对象可以动态查看字典内部的对象,当字典改变后,这个view对象也会反应变化。

Python 2时,返回的是list,现在是dict_keys。

(2)values()

返回值(value)的view对象,dict_values。

(3)items()

返回键值对(key-value)的view对象:dict_items

(4)get(key)

获取key对应的value,上面已经讲到。

(5)clear()

清空一个字典

(6)copy()

在Python中,把列表,字典对象赋值给变量时,都是“浅拷贝”,即,变量指向了对象,原来的对象改变了,这个变量的值也会跟着变。而cop()函数是“深拷贝”,重新创造一个新对象赋值给变量,原来的对象的改变不影响新对象。

(7)pop(key)

删除key并返回它的值,上面已经讲到。

(8)popitem()

返回一对键值:

(9)fromkeys()

通过一个序列来初始化字典:

(10)update()

用一个字典来更新另一字典:

总结

字典是Python中很重要的一个数据结构,也是Python内置的数据类型。今后的编程中会经常用到它,所以要熟练掌握它的各种操作。

如果你觉得本文对你的学习有帮助的话,不妨点个关注呗。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值