dict
dict类型与C++中的stl::map
d = {‘Michael’: 95, ‘Bob’: 75, ‘Tracy’: 85}
d[‘Adam’] = 67
//要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
'Thomas' in d
//通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
d.get('Thomas', -1)
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
需要牢记的第一条就是dict的key必须是不可变对象。也就是说key不能是list
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合。
s=set([1,2,3])
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
通过remove(key)方法可以删除元素
set可以做数学意义上的交集、并集
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,