Python学习笔记(四)—字典(dict)
来源:互联网 发布:联影 算法怎么样 编辑:程序博客网 时间:2024/06/07 06:08
-1. 字典 dict
在前面已经学会了顺序集合tuple和list,但是怎么讲两个给关联起来,进行查询,这里就需要用到字典—dict了。在dict中,使用 key-value来进行关联,并通过key查找value。
字典使用花括号{}来将元素括起来。
-① 创建一个dict
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}
-② 计算一个dict的大小
dict也是一个集合,所以可以通过len()函数来计算dict的大小,其中一个key-value算一个
len(d)
-③ 查找dict中key 的值
通过d[‘key’]即可查找dict中对应key 的值,如
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}val=d['Adam']print val结果:95
也可以通过for循环,遍历dict中的key,并通过key获取到对应的value,如下:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}for key in d: print key,":", d.get(key)执行结果: Lisa : 85 Adam : 95 Bart : 59
-④ 查看key是否存在
通过key访问dict,如果key不存在,程序会报错,那么通过以下两种方法可以来查询key是否存在
第一种,通过in方法: key in d 来返回结果Ture or False
if 'Bart' in d: print d['Bart']else: d['Bart'] = 59执行结果:59
第二种,dict提供的get方法,其使用方法:d.get(‘key’), 如果key不存在,返回none,也可以自定义返回值,如 d.get(‘key’, -1) 则key不存在时返回-1。
注意,返回none的时候Python的交互命令行不显示结果。
print d.get('Bart')print d.get('Paul')执行结果:59 None
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}print "Adam:", d['Adam']print "Lisa:", d.get('Lisa')if 'Bart' in d: print "Bart:", d['Bart']执行结果: Adam: 95 Lisa: 85 Bart: 59
-④ 更新Dict
dict是一个可变的列表,可以通过赋值语句更新dict
如果key不存在,则在dict中添加一对新的key-value
如果key已经存在,则新的value会替换到旧的value
-⑤ 删除key的方法
d.pop(‘key’) ,对应的value也会一并删除
-⑥ dict的特点
和list相比,dict有以下特点:
查找速度快,时间复杂度不会随dict增大而增大
需要占用大量内存,内存浪费多
key不可以重复,且不可变
数据无序排放
注意:key必须是不可变对象。因为dict根据key来计算value的存储位置,如果相同的key每次计算时都得出不同的value,那dict内部就会完全混乱。通过key计算位置的方法是哈希算法,要保证hash的正确性,作为key的对象就不能变。Python中字符串和整数都是不可变对象,可以放心作为key,而list是可变的所以不能作为key。
key类型:字符串、整形、浮点型、元组型但是不能是列表(list是可变的)
value类型:都可以
- python学习笔记(四)字典(dict)
- Python学习笔记(四)—字典(dict)
- python 学习笔记——字典(dict)
- Python学习笔记之映射类型字典(dict)
- Python学习笔记之映射类型字典(dict)
- Python学习笔记:字典(dict)有关内容
- python:字典(dict)
- redis学习笔记(3)---字典dict
- Python基础学习篇—字典(dict)
- python学习笔记(四)dict和set类型
- Python学习笔记(四)dict和set
- Python学习笔记(四)生成字典
- Python学习笔记 - 8.字典(Dict)
- Python学习笔记(四)——字典
- Python中的字典(dict)
- Python--小甲鱼学习笔记--第26课:字典(dict())
- python学习(6)dict字典和set
- Python学习笔记(九)—— Dict
- iOS Hacker Xcode玩转arm64汇编基础
- python 字符串开头或结尾匹配
- 我的博客开通了
- freecodecamp小项目---城市天气预报查询
- 记录一次系统部分功能解耦重构
- Python学习笔记(四)—字典(dict)
- Java Interface用法
- Android应用设置多个启动图标,动态列换应用图标
- 获取泛型的Class类型
- Butterknife的使用
- 数值得整数次方--模拟pow函数的功能
- csapp 实验二 二进制炸弹
- 利用Android Studio的CMake来快速开发NDK
- multipart/form-data post 方法提交表单,后台获取不到数据