Python内置字典;dict ,set

dict and set

dict:  键-值 /重复添加

set :  键 / key不能重复

 

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

 

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度 >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

>>> 'Thomas' in d False

二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value: 要删除一个key,用pop(key)方法,对应的value也会从dict中删除: 在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3]) >>> s {1, 2, 3} 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果>>> s.add(4)

通过remove(key)方法可以删除元素:>>> s.remove(4)

所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

小结 使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。

tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。

posted @ 2017-06-26 18:02  大树2  阅读(180)  评论(0编辑  收藏  举报