【python入门第十五天】python数据类型-字典

字典

Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!
字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,但值则不必。
字典可精确描述为不定长、可变、无序、散列的集合类型
字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,例如:

d = {key1:value1,key2:value2}

创建字典

dict()函数是Python内置的创建字典的方法。

test = {}	#创建空字典
test = {"a":'123','b':'2',"c":3}
dict([('name',	'python'),('age',20),('addr','cs')])
{'name':'python','age':20,'addr':'cs'}
dict(a=1,b=2,python=2022)
{'a':1,'b':2}

访问字典

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与list类似,字典采用把相应的键放入方括号内获取对应值的方式取值。

dic ={'Name':'python','Age':20}
print("dic['Name']:",dic['Name'])
print("dic['Age']:",dic['Age'])
如果访问字典里没有的键,会抛出异常:
dic['address']
Traceback	(most  recent  call  last):
	File	"<pyshell#7>",line	1,in	<module>				
	     dic["address"]
KeyError:'address'

增加和修改

增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

dic ={'Name':'python','Age':20}
dic["address"] ="天津市"
dic["address"] =	"宝坻区"
dic["Age"] = 20
dic
{'Name':'python','Age':20,'address':'宝坻区'}
-------------------------------------
要统计字典内键的个数,可以使用Python内置的len()函数:
len(dic)
3

删除字典元素、清空字典和删除字典

使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典

dic
{'Name':'python','Age':20,'address':'天津市'}
del  dic['Name']		#删除指定的键
dic
{'Age':20,'address':'天津市'}
-------------------------------------
a = dic.pop('Age')		#弹出并返回指定的键。必须提供参数!
20
dic.clear()			#清空字典
del  dic				#删除字典本身

字典的重要方法

get(key)		返回指定键的值,如果值不在字典中,则返回default值
items()		    以列表返回可遍历的(键,	值)元组对
keys()		    以列表返回字典所有的键
values()		以列表返回字典所有的值

接下来我们看看例子:

dic  = {'Name':'python','Age':20,'address':'天津市'}
dic.get("sex")		#访问不存在的key,没有报错
dic['sex']			    #访问不存在的key,报错。
Traceback	(most	recent	call	last):		
    File	"<pyshell#44>",	line 1,in  <module>				
      dic["sex"]
KeyError:'sex'
-------------------------------------
dic.items()
dict_items([('Name','python'),('Age',20),('address','天津市')])
-------------------------------------
dic.values()
dict_values(['python',20,'天津市'])
-------------------------------------
dic.keys()
dict_keys(['Name',	'Age','address'])
-------------------------------------
dic.pop('Name')
python

遍历字典

从Python3.6开始遍历字典获得的键值对是有序的
在这里插入图片描述

dic  ={'Name':'python','Age':20,'Class':'203'}
1	直接遍历字典获取键,根据键取值
for  key  in  dic:				
      print(key,dic[key])
2	利用items方法获取键值,速度很慢,少用!
for  key,value  in  dic.items():
	  print(key,value)
3	利用keys方法获取键
for  key  in  dic.keys():
	  print(key,dic[key])
4	利用values方法获取值,但无法获取对应的键。
for  value  in  dic.values():
	  print(value)	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落羽凉笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值