概述
dict与set的区别:
dict
1. dict其实就是Java中的map,dict是一个键值对集合(key-value),它可以根据键来唯一确定对应的值的内存地址,具有极快的查询和插入速度,不会随着数据的增加而变慢
2. key存放的顺序与内部存放的顺序是没有关系的
3. 需要占用大量的内存,造成资源浪费
4. dict的key值是不可变的 附录:可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple,具体参见http://blog.csdn.net/dan15188387481/article/details/49864613 ,使用可变数据类型作为key值运行时会报错
5. key值不可重复
6.存放的顺序跟内部存储的顺序没有关系
set
1.跟dict一样是key的集合,不可重复
2.创建一个set集合,需要提供一个list作为输入集合,eg.s=set([1,2,3,4])
,如果list中有重复值,set会自动去重
3.不可存储可变的数据类型作为key值,内部存储原理跟dict一样,只是没有value罢了
4.
基本用法
初始化:dict={1:'Bob','name':'小李'}
,s=set([2,4,23,5,32,562,2])
更改dict的值:dict[1]=100
添加一个dict元素:dict[test]=None
添加一个set元素:s=set([1,2,3,4]) s.add(None) s.add('test')
移除一个dict的值:dict.pop(key)
移除一个set值:s.remove(2)#移除指定的值,如果没有这个值会报错,要先使用in判断 s.pop()#移除第一个值
方法
method | explain | example | dict和set哪个可以使用 |
---|---|---|---|
add(value) | 为set添加一个值 | set.add(‘test’) | set |
pop(key) | 为dict删除一个指定的可以,同时删除key对应的value值,返回删除的值 | dict.pop(key) | dict |
pop() | 为set删除第一个值,返回删除的值 | set.pop() | set |
remove(value) | 移除set中的一个指定的值,没有这个值会报错,通常会这样使用if 'name' in set:set.remove(name) | set.remove(‘2’) | set |