dict
一、dict的定义
- dict即字典,相当于golang中的map类型,key-value型.具有极快的查找速度.
- 由于dict中key的值是唯一的,因此如果多次赋值,最终结果为最后一次的赋值.
二、dict的查找
- 如果key不存在会报错,检测key是否存在可以通过in或get()方法.当key不存在时,in的方式返回False,get()方法返回None或指定值.
# dict的赋值
d={"math":95,"yuwen":82,"english":100}
d["huaxue"]=105
# print(d["math"])
# print(d)
#key不存在的报错
print(d["no"])
#key不存在使用IN进行判断
a="no" in d
print(a)
#get()方法检查key是否存在
a=d.get("math")
b=d.get("tiyu")
print(a,b)
三、dict的删除
- 要删除dict中的元素,可以通过用pop(key)方法,删除该key对应的键值对.
d={"math":95,"yuwen":82,"english":100}
d.pop("math")
print(d)
结果:
{'yuwen': 82, 'english': 100}
四、特别说明
dict的特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多.
- dict的key必须是不可变对象,在Python中,字符串、整数等都是不可变的,而list是可变的,就不能作为key.
对比list的特点:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少.
set
set表示无序和无重复元素的集合,与数学意义上的集合类似,也可以看成是只有key没有value的dict.
一、set的定义
- 要创建一个set,需要提供一个list作为输入集合,如果list中有重复元素则自动过滤掉.
s=set([1,2,3,4,5])
print(s)
结果:{1, 2, 3, 4, 5}
s=set([1,2,3,4,5,5,4])
print(s)
结果:{1, 2, 3, 4, 5}
二、set的添加和删除
- 通过add(key)方法可以添加元素到set中,可以重复添加,但无效.
- 通过remove(key)方法可以删除元素.
s=set([1,2,3,4,5])
s.add(10)
print(s) //{1, 2, 3, 4, 5, 10}
s=set([1,2,3,4,5])
s.add(5)
print(s)//{1, 2, 3, 4, 5}
s=set([1,2,3,4,5])
s.remove(5)
print(s)//{1, 2, 3, 4}
s=set([1,2,3,4,5])
s.remove(10)
print(s)//Traceback (most recent call last):KeyError: 10
三、set的交集和并集
#set的交集和并集
s1=set([1,2,3,4,5])
s2=set([2,3,4,5,6])
#交集
print(s1 & s2)//{2, 3, 4, 5}
#并集
print(s1 | s2)//{1, 2, 3, 4, 5, 6}
四、不可变对象