Python的字典类型为dict,用{}来表示,字典存放键值对数据,每个键值对用:号分隔,每个键值对之间用,号分隔,其基本格式如下:
d = {key1 : value1, key2 : value2 }
键一般是唯一的,如果重复最后一个键值对会替换前面的,值不需要唯一,值可以取任何数据类型,但键必须是不可变的可哈希的,如字符串,数字或元组。
一、字典的“增删改查”
1.向字典中添加元素
将添加元素的键放进方括号中,然后用赋值操作,将添加元素的值赋值给键,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 lol["李青"] = "盲僧" 3 print(lol)
{'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '李青': '盲僧'}
使用setdefault(key, value)方法,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 lol.setdefault("赵信", "德邦总管") 3 print(lol)
{'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '赵信': '德邦总管'}
2.删除元素
使用pop(key)方法,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 lol.pop("亚索") 3 print(lol)
{'露露': '仙灵女巫', '提莫': '迅捷斥候'}
使用del,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 del lol["露露"] 3 print(lol)
{'亚索': '剑豪', '提莫': '迅捷斥候'}
popitem()方法可以删除字典中随机一个元素(Python3.6删除字典最后一项):
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 lol.popitem() 3 print(lol)
{'亚索': '剑豪', '露露': '仙灵女巫'}
3.更改字典中的元素
通过key直接赋值,可以强制修改:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 lol["露露"] = "小萝莉" 3 print(lol)
{'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候'}
使用update()方法,将新元素和更改后的元素存放进字典:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"} 2 loli = {"露露": "小萝莉","阿狸": "九尾妖狐"} 3 lol.update(loli) 4 print(lol)
{'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候', '阿狸': '九尾妖狐'}
4.查找
使用key进行查找:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol["提莫"])
迅捷斥候
使用get()方法进行查找,没有返回None,可以指定返回内容:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol.get("安妮", "黑暗之女"))
黑暗之女
使用setdefault()方法,没有返回None,可以指定返回内容:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol.setdefault("提莫", "小提莫"))
迅捷斥候
二、字典的操作
获取所有key,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol.keys())
dict_keys(['亚索', '露露', '提莫', '阿狸'])
获取所有value,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol.values())
dict_values(['剑豪', '仙灵女巫', '迅捷斥候', '九尾妖狐'])
获取所有键值对,示例如下:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 print(lol.items())
dict_items([('亚索', '剑豪'), ('露露', '仙灵女巫'), ('提莫', '迅捷斥候'), ('阿狸', '九尾妖狐')])
clear()清空字典中的所有元素:
1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"} 2 lol.clear() 3 print(lol)
{}
fromkeys()快速创建一个dict:
1 dic = dict.fromkeys(['Jay','JJ'], ['周杰伦', '林俊杰']) 2 print(dic)
{'Jay':['周杰伦', '林俊杰'], 'JJ':['周杰伦', '林俊杰']}
注意:如果用fromkeys创建出的字典,value是列表,会有浅拷贝问题,当一个列表增加元素,其他列表也会增加。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库