Learning Python 009 dict(字典)和 set
2016-07-20 02:28
309 查看
Python dict(字典)和 set
dict (字典)是什么东西
dict全称dictionary。为什么这个数据结构取名叫dict。因为dict的实现原理和查字典是一样的。dict使用了键-值(key-value)存储的方式。就好比在字典里查某个字一样。dict数据结构中的键(key)就好比字典中的索引表里这个字对应的页码。值(value)就好比字典中这个字的内容。这样的特点,效果就是查找速度极快。
例如:一个人“名字”-“成绩”的对照表,直接根据名字查找成绩:
定义dict字典
>>> d = {'Aobo': 59, 'Shutong': 98, 'Yunjie': 86} >>> d['Aobo'] 59
向dict中,添加元素
>>> d['Yue'] = 67 >>> d['Yue'] 67
修改dict中,某个键(key)的值(value)
>>> d['Aobo'] = 88 >>> d['Aobo'] 88
判断 键(key)是否存在于这个dict(字典)中
如果,key不存在,会报错。比如:
>>> d['Harry'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Harry'
避免出现这样的报错的方法有:
1. 使用
in判断key是否存在:
>>> 'Harry' in d False
- 使用dict提供的
get
方法,来检查key是否存在,如果不存在,返回None
,或者自己指定的value:
>>> d.get('Harry') >>> d.get('Harry', -1) -1
注意:
返回None的时候,在终端上的Python交互式命令行不显示结果。
删除dict中,指定键元素
使用
pop(key)方法,就可以将对应的key-value在dict中删除:
>>> d.pop('Aobo') 88 >>> d {'Shutong': 98, 'Yunjie': 86, 'Yue': 67}
使用dict,你需要注意的事情
特点是比较出来的,所以,和list比较,dict有几个特点
1. 速度快。无论是查找还是插入,速度都极快,并且不会随着key的增加而变慢。
2. 需要占用大量的内存,内存浪费多。
那么,list的特点就是:
1. 查找和插入的时间随着元素的增加而增加;
2. 占用空间小,浪费内存很少。
注意:key的值是不可变的。
字符串、整数等都是不可变的,可以放心地作为key。而list是可变的,就不能作为key。
set
介绍
与dict数据结构类似,只是它只有key,没有value
定义一个set数据结构
使用
set()函数定义set数据结构。在
()里面添加一个list数据(
[]):
>>> s = set([1, 2, 3]) >>> s {1, 2, 3}
>>> s = set([1, 1, 2, 2, 3, 3]) >>> s {1, 2, 3}
注意:
set会自动将重复的元素过滤掉。所以,在set中,没有重复的key。
向set数据类型中,添加元素
使用
add()方法,添加元素。
>>> s.add(4) >>> s {1, 2, 3, 4}
可以添加重复的key,但是不会有效果:
>>> s.add(3) >>> s {1, 2, 3, 4}
向set数据类型中,删除指定key的元素
使用
remove()方法,可以删除元素:
>>> s.remove(4) >>> s {1, 2, 3}
对set数据,进行交集和并集等操作
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
使用set,需要注意的事情
set和dict之间唯一的区别就是,set没有存储对应的value。
相关文章推荐
- Python下安装Numpy,Scipy,Matlotlib
- 文章标题
- 翻转二叉树(leetcode-226)
- python中print的不换行即时输出的快速解决方法
- Python 字符串 String 内建函数大全(1)
- Python 字符串 String 内建函数大全(2)
- 使用python脚本将XML 电子表格转变为Excel
- Python 的List排序
- Python加密—MD5加密
- Python加密——sha1加密
- Python入门之函数式开发
- Python迭代和迭代器详解
- 常用的 Python 爬虫技巧总结
- Python集合使用详解
- 打造自己的 Python 编码环境
- 21行Python代码实现拼写检查器
- 八大排序算法的Python实现
- Python中的 List Comprehension 以及 Generator
- Python greenlet使用介绍及实现原理
- python的super使用