python3-基础篇-09-字典

2022/2/12 9:44:37

本文主要是介绍python3-基础篇-09-字典,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

字典的特点:

1.无序的

2.key唯一

ps:类似于java中的map

一、字典创建

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

1. _dict={key:value} (常用)

2. _dict=dict(((key,value),))

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

二、字典操作

1.查询 ,通过key查询

1.value=_dict['key']

2.value = _dict.get('key')

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

运行结果

lvyq

12

其它方法

方法说明
_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.添加

1. _dict('key')='值' 

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

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

运行结果

原始值:{'name': 'lvyq', 'age': 12}
修改后:{'name': 'lvyq', 'age': 22}
修改后:{'name': 'lvyq', 'age': 22, 'job': 'IT'}

2

setdefault('key','值')

与上面不同的是当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))

运行结果

新增前:{'name': 'lvyq', 'age': 12}
修改后:{'name': 'lvyq', 'age': 12},修改的值为:12
修改后:{'name': 'lvyq', 'age': 12, 'job': 'IT'},修改的值为:IT

3.修改

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

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

_dict.update(_dict2)

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

运行结果

_dict的值:{'name': 'lvyq', 'age': 12}
_dict2的值:{'name': '小明', 'job': 'IT'}
更新后_dict的值:{'name': '小明', 'age': 12, 'job': 'IT'}

4.删除

1.del _dict['key']  通过键删除键值对

2._dict.pop('key') 通过键删除,并返回对应的值

3._dict.clear() 清空

4._dict.popitem() 随机删除某组键值对(基本不用)

_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)

运行结果

del 删除后结果:{'age': 12, 'Job': 'IT'}
删除age后:{'Job': 'IT'},删除key对应的值12
{}

                                                               其它

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

dict.fromkeys(seq,'value')

创建一个新字典,以序列 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)

运行结算

{'one': 'value', 'two': 'value', 'three': 'value'}
{'A': 'value', 'B': 'value', 'C': 'value'}
{'one': [1, 2], 'two': [1, 2], 'three': [1, 2]}

二、字典遍历

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

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



这篇关于python3-基础篇-09-字典的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程