python第二站续--字典dict
2016-05-05 14:12
465 查看
今天写一下字典的用法-dict,dict使用键-值存储,就是一个属性对应一个属性值,这就方便了我们查找,节省时间看一下dict的构造方法,我们初始化一个dict,一个有学生和成绩的dict
可以看到输出的顺序并不是我们输入的顺序,因为dict输出的时候是无序的,它只保证一个key对应一个value,一个名字对应一个成绩,这样我们查找的时候可以根据名字快速查找对应的分数比如:
当然我们也可以用list实现以上查找,一个name表,一个成绩表,很明显这样查找非常麻烦、
初始化一个dict之后,想要加入一对值,可以直接往dict里面加入:
如果查找不存在的key,系统是会报错的:
我们可以通过判断确定key是否存在:
或者自定义key不存在时返回自定义值:
有增加,就有删除,删除依然用pop(key)的方法:
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加
- 占用空间小,浪费内存很少
还有一个和dict一样存储key的一个集合,就是set,只不过set没有value,set里面是一个list:
插入一个key用add(key)方法,:
可以重复插入,但是不会有效果,所以set可以做交集、并集等运算:
以上就是dict和set的一些内容了,简单实用
分了两篇文章介绍list和dict,不是因为它有多难,而是因为它以后用的比较多,所以基础要扎实!!!希望大家看我文章是能共勉一起学习,有问题或者发现文章有错误的可以评论留言,我看到后会一一认真回应,大家一起进步!
ps:今天发现可以使用markdown编辑模式,再也不用担心代码不明显了!!
>>> dict={'bob':98,'lisa':82,'agle':63} >>> dict {'lisa': 82, 'agle': 63, 'bob': 98}
可以看到输出的顺序并不是我们输入的顺序,因为dict输出的时候是无序的,它只保证一个key对应一个value,一个名字对应一个成绩,这样我们查找的时候可以根据名字快速查找对应的分数比如:
>>> dict['bob'] 98
当然我们也可以用list实现以上查找,一个name表,一个成绩表,很明显这样查找非常麻烦、
names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85]
初始化一个dict之后,想要加入一对值,可以直接往dict里面加入:
>>> dict['lack'] 99 >>> dict {'lack': 99, 'lisa': 82, 'agle': 63, 'bob': 98}
如果查找不存在的key,系统是会报错的:
>>> dict['aa'] Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> dict['aa'] KeyError: 'aa'
我们可以通过判断确定key是否存在:
>>> 'lack' in dict True >>> 'aa' in dict False
或者自定义key不存在时返回自定义值:
>>> dict.get('aa','notfound') 'notfound'
有增加,就有删除,删除依然用pop(key)的方法:
>>> dict.pop('lack') 99 >>> dict {'lisa': 82, 'agle': 63, 'bob': 98}
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加
- 占用空间小,浪费内存很少
还有一个和dict一样存储key的一个集合,就是set,只不过set没有value,set里面是一个list:
>>> s=set([1,2,3]) >>> s {1, 2, 3}
插入一个key用add(key)方法,:
>>> s.add(4) >>> s {1, 2, 3, 4}
可以重复插入,但是不会有效果,所以set可以做交集、并集等运算:
>>> s1=set([1,2,3,4]) >>> s2=set([2,3]) >>> s1&s2 {2, 3} >>> s1|s2 {1, 2, 3, 4}
以上就是dict和set的一些内容了,简单实用
分了两篇文章介绍list和dict,不是因为它有多难,而是因为它以后用的比较多,所以基础要扎实!!!希望大家看我文章是能共勉一起学习,有问题或者发现文章有错误的可以评论留言,我看到后会一一认真回应,大家一起进步!
ps:今天发现可以使用markdown编辑模式,再也不用担心代码不明显了!!
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法