0
点赞
收藏
分享

微信扫一扫

python3-基础篇-09-字典

cnlinkchina 2022-02-12 阅读 77
python后端

字典的特点:

1.无序的

2.key唯一

ps:类似于java中的map

一、字典创建

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

_dict1 ={"name":"lvyq","age":12}
_dict2=dict((("name","lvyq"),("age",12),))
print(type(_dict1),_dict1)
print(type(_dict2),_dict2)

二、字典操作

1.查询 ,通过key查询

_dict = {'name':'lvyq','age':12}
name = _dict['name']
age = _dict.get('age')
print(name)
print(age)

运行结果

其它方法

方法说明
_dict.keys()获取所有键,在python3中,并非列表类型,是一个dict_keys类型,这是python3做的优化,使用的话需要使用类型转换
_dict.values()

获取所有值

_dict.items()获取所有的键值对
_dict = {'name':'lvyq','age':12}
#查询所有键 keys() dict_keys 并非列表类型 ,是一个dict_keys类型,需要用list转换。python3做的优化
print("获取的值:{},对应的类型:{},转换成列表后:".format(_dict.keys(),type(_dict.keys())),list(_dict.keys()))
print("获取的值:{},对应的类型:{},转换成元组后:".format(_dict.values(),type(_dict.values())),tuple(_dict.values()))
print("获取的值:{},对应的类型:{},转换成字典后:".format(_dict.items(),type(_dict.items())),dict(_dict.items()))

运行结果

2.修改

2.添加

 当key在字典中存在时,则会更新,不存在时,则往字典中添加相应的键值对

_dict = {'name':'lvyq','age':12}
print("原始值:%s"%_dict)
_dict['age']=22
print("修改后:%s"%_dict)
_dict['job']='IT'
print("修改后:%s"%_dict)

运行结果

2

与上面不同的是当key在字典中存在时,则不会更新,同时会返回所要添加的key所对应的值,不存在,则添加并返回所添加的键值对对应的值

_dict = {'name':'lvyq','age':12}
print("新增前:%s"%_dict)
_set_vauel=_dict.setdefault('age',62)
print("修改后:{},修改的值为:{}".format(_dict,_set_vauel))
_set_vauel=_dict.setdefault('job','IT')
print("修改后:{},修改的值为:{}".format(_dict,_set_vauel))

运行结果

3.修改

1.使用_dict['key']的方式,可以修改值。(上面已经提到了)

2.update() ,将_dict2的值更新到_dict中,当两个字典中存在相同的key时,则后面字典中key对应的值更新至前面字典中key所对应的值

_dict = {'name':'lvyq','age':12}
print("_dict的值:%s"%_dict)
_dict2={'name':'小明','job':'IT'}
print("_dict2的值:%s"%_dict2)
_dict.update(_dict2)
print("更新后_dict的值:%s"%_dict)

运行结果

4.删除

_dict = {'name':'lvyq','age':12,'Job':'IT'}
#根据键删除键值对
del _dict['name']
print("del 删除后结果:%s"%_dict)
#删除,并返回该键值对的值
age =_dict.pop('age')
print("删除age后:{},删除key对应的值{}".format(_dict,age))
#清空
_dict.clear()
print(_dict)

运行结果

                                                               其它

字典的创建除了上面提到的两种,还可以使用fromkeys()创建

创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

_dict=dict.fromkeys(['one','two','three'],'value')
_dict2=dict.fromkeys('ABC','value')
_dict3=dict.fromkeys(['one','two','three'],[1,2])
print(_dict)
print(_dict2)
print(_dict3)

运行结算

二、字典遍历

_dict = {'name':'lvyq','age':12}
for i in _dict:
    print("遍历1",i,dict[i])
for i,v in _dict.items():
    print("遍历2",i,v)

推荐使用第一种,第一种效率相对较高,第二种中间存在了数据类型转换的过程

举报

相关推荐

0 条评论