字典
1 字典的增加
(1)直接指定key、value,无则增加,有则修改。
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic['hobby']='美女' print(dic) 结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', 'hobby': '美女'}
(2)dic.setdefaulte() 有key则不修改,无则添加。
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic.setdefault('身高',180) print(dic) 结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', '身高': 180}
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic.setdefault('age',180) print(dic) 结果为:{'name': '韦小宝', 'age': 20, 'sex': '男'}
2 字典的删除
(1)按照键值删除 dic.pop(),del dic[key],del删时字典里面的键时,如果键不存在会报错
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic.pop('name') print(dic) 结果为:{'age': 20, 'sex': '男'}
del dic['age'] print(dic) 结果为: {'name': '韦小宝', 'sex': '男'}
(2) 如果dic.pop("n")里面的键不存在,则会报错。可指定默认返回值
dic={ 'name':'韦小宝', 'age':20, 'sex':'男',}
print(dic.pop("n"))
结果会报错:
Traceback (most recent call last): File "E:/python/test.py", line 14, in <module> print(dic.pop("n")) KeyError: 'n'
指定默认返回值
print(dic.pop("n",'abcdf')) 输出为: abcdf
(3)随机删除 dic.popitem()
字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic.popitem() print(dic) 结果为:{'name': '韦小宝', 'age': 20}
Python3.5后版本后默认删除最后一组键值对
(4)清空字典 dic.clear()
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } dic.clear() print(dic) 结果为:{}
3 字典的修改
(1)dic.update(k=v),有则修改,无则添加
dic1={ "name":"乔峰", "age": 30, "job": "帮主" } dic1.update(gender="男") dic1.update(age=32) print(dic1)
结果为:
{'name': '乔峰', 'age': 32, 'job': '帮主', 'gender': '男'}
(2)将dic2中的内容覆盖添加至dic1,dic2不变。
dic1={ "name":"乔峰", "age": 30, "job": "帮主" } dic2={ "name":"段誉", "hoby":"美女" } dic1.update(dic2) print(dic1) print(dic2)
结果为:
{'name': '段誉', 'age': 30, 'job': '帮主', 'hoby': '美女'} {'name': '段誉', 'hoby': '美女'}
4 字典的查找
(1)按照键值查找
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } print(dic['name']) 结果为:韦小宝
(2)dic.get(),参数为键,如果键不存在,默认返回None,可指定返回值
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } print(dic.get('age')) 结果为:20
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } print(dic.get('agei','没有。。。。')) 结果为:没有。。。。
(3)打印键和值,类似于列表的一个容器,没有索引。
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } print(dic.keys()) print(dic.values()) 结果为: dict_keys(['name', 'age', 'sex']) dict_values(['韦小宝', 20, '男'])
(4)循环打印键或者值
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } for i in dic.keys(): print(i) 结果为: name age sex
(5)同时输出键值
dic={ 'name':'韦小宝', 'age':20, 'sex':'男', } for k,v in dic.items(): print(k,v) 结果为: name 韦小宝 age 20 sex 男
5 字典的嵌套
(1)给name_list增加一个值"姜维"
dic={ 'name_list]':['诸葛亮','庞统','司马懿',], 2:{ 'leader':'刘备', 'age':'48', } } dic['name_list]'].append('姜维') print(dic) 结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿', '姜维'], 2: {'leader': '刘备', 'age': '48'}}
(2)给字典里边的2(字典)增加一个键值对"wife:孙尚香"
dic={ 'name_list]':['诸葛亮','庞统','司马懿',], 2:{ 'leader':'刘备', 'age':'48', } } dic[2]['wife']='孙尚香' print(dic) 结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿'], 2: {'leader': '刘备', 'age': '48', 'wife': '孙尚香'}}
6 删除字典中键值包含"k"的键值对
dic = { 'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'alex' } l1=[] for i in dic: if 'k' in i: l1.append(i) print(l1) for i in l1: del dic[i] print(dic) 结果为: ['k1', 'k2', 'k3'] {'name': 'alex'}
7 Python 字典 fromkeys() 函数
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
dic={} dic=dic.fromkeys('abc',666) print(dic) dic=dic.fromkeys('abc',[]) print(dic) 结果为: {'a': 666, 'b': 666, 'c': 666} {'a': [], 'b': [], 'c': []}
seq = ('name', 'age', 'sex') dict = dict.fromkeys(seq) print ("新的字典为 : %s" % str(dict)) dict = dict.fromkeys(seq, 10) print ("新的字典为 : %s" % str(dict)) 结果为: 新的字典为 : {'name': None, 'age': None, 'sex': None} 新的字典为 : {'name': 10, 'age': 10, 'sex': 10}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!