python dict{}和set([])
介绍
dict(dictionary),在其他语言中也称为map,使用键-值(key-value)存储。set和dict类似,也是一组key的集合,但不存储value。字典和set的key都是不允许重复且key不能是列表。s={'stu1':80,'stu2':90,'stu3':60}
2.查询
查询stu1的分数
>>> s['stu1'] 80 >>>
3.修改value
>>> s['stu1']=50 >>> s {'stu3': 60, 'stu2': 90, 'stu1': 50}
4.增加key
例如增加一个代表学生stu4-stu7的key-value
>>> s['stu4-7']=[40,80,50,60] >>> s {'stu3': 60, 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
注意:key不能是变量(python里面的变量不太容易理解,就简单的理解key不能是list就行),但是value可以是变量(python里面的),value可以是常量、字符串、list、tuple等
>>> s['stu8-9']=(80,50) >>> s {'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
读取stu8的分数
>>> s['stu8-9'][0] 80 >>>
5.删除key
要删除一个key,用pop(key)
方法,对应的value也会从dict中删除
例如:删除key"stu1"
>>> s.pop('stu1') 50
>>> s {'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu4-7': [40, 80, 50, 60]} >>> s['stu1'] Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> s['stu1'] KeyError: 'stu1' >>>
6.判断一个key是否存在
方法1:直接打印输出,如果key不存在会返回错误
>>> s['stu1'] Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> s['stu1'] KeyError: 'stu1' >>>
方法2:通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
s.get('stu1')
可以用print打印出None
>>> print (s.get('stu1')) None >>>
可以自己指定key不存在返回的值,例如返回1,但是返回值必须是整形
>>> s.get('stu1',1) 1
方法3:通过in
判断key是否存在,不存在返回Flase
>>> 'stu1' in s False >>> 'stu2' in s True
二、set([])
set和dict类似,也是一组key的集合,但不存储value;set和dict一样key不允许是list且key不能重复。
1.创建set
要创建一个set,需要提供一个list作为输入集合,注意set的固定格式,set([]),在set()中加入list
>>> se=set(['a','b','c']) >>> se {'b', 'c', 'a'}
注意:list中的每一个元素都是一个key,但是元素不能是list可以是常量、字符串、tuple、浮点型
2.读取key
>>> se {'b', 'c', 'a'}
set不支持索引,所以没办法像list和tuple那样根据索引获取指定的key,比如se[0]会返回错误
4.增加key
通过add(key)
方法可以添加元素到set中,可以重复添加,但不会有效果
>>> se.add('d') >>> se {'b', 'c', 'd', 'a'} >>>
5.删除key
通过remove(key)
方法可以删除元素
>>> se.remove('c') >>> se {'b', 'd', 'a'} >>>
6.设置一个list key
>>> se.add(['e','f']) Traceback (most recent call last): File "<pyshell#74>", line 1, in <module> se.add(['e','f']) TypeError: unhashable type: 'list'
返回错误:没有对应的list哈希表
注意:这里的['e','f']指的是一个元素(key),只不过它是list元素,set([])中的key不支持list.
总结
从dict{}和set([])的返回key可以发现它们是没有固定的顺序的。但是key不能是list。dict的value可以是任何已知的类型值。
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端