Python-dict/set

dict:字典,使用键-值(key-value)存储,具备很是快的查找速度。spa

一、初始化:d = {'Michael':95,'Bob':75,'Tracy':85}code

二、读取:d['Michael']   95对象

这种存储方式在放进去的时候,必须根据key算出value的存放位置,这样取得时候才能根据key直接拿到value。内存

把数据放入dict的方法,除了初始化时指定外,还能够经过key放入:rem

d['Machael'] = 67get

屡次在一个key放入value会把前面的值冲掉,若是key值不存在也会报错。数学

三、判断key是否存在:in   'Thomas' in d  返回false原理

          经过dict提供的get方法,若是key不存在,返回None,或本身指定的value:方法

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
四、删除:pop(key): d.pop('Bob')
五、和list相比,dict的特色:
  1)查找和插入速度快,不会随着key的增长而增长。
  2)须要占用大量的内存,内存浪费多。
而list相反:
  1)查找和插入随着元素的增长时间增长
  2)占用空间小,浪费内存不多。


set
set和dict类似,也是一组key的集合,可是不存储value。因为key不能重复,因此,在set中,没有重复的key。
一、建立一个set,须要提供一个list做为输入集合:
s = set([1,2,3])
二、重复元素在set中自动被过滤:
s = set([1,1,1,2,2,3,3])
s 1 2 3
三、添加元素:s.add(4)
四、删除元素:s.remove(4)
五、set能够当作数学意义上的无序和无重复元素的集合,所以,两个set能够作数学意义上的交集、并集等操做。
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])
set和dict的惟一区别仅在于没有存储对应的value,可是,set的原理和dict同样,因此,一样不能够放入可变对象,由于没法判断两个可变对象是否相等,也就没法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

因此,对于不变对象来讲,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会建立新的对象并返回,这样,就保证了不可变对象自己永远是不可变的。数据

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息