dict
优质
小牛编辑
132浏览
2023-12-01
基本概要
它的原理类似于词典,也就是说有专门的目录页来查找,它并不需要从第一页翻到第二页等等到最后,它只需要查看自己的目录即可
语法:
d = {'abb':'12', 'dd':12}
d['abb']
其实类似于js中的对象
const a = {
a1:func(){},
b:12,
c:'12333'
}
a.a1
a['a1']
let b = 'b'
a[b]
这就是js中的变量,其实很相似。 当然 js中还有map(当然数组对应的是set)它还能用其它类型的字符做键
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
'Thomas' in d
False
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
d.get('Thomas')
d.get('Thomas', -1)
-1
要删除一个key,用pop(key)方法,对应的value也会从dict中删除
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key 也就是说,Python中的key是绝对不能变化的。
set
可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
a = set([1,2,3])
跟dict和list等一样key不能重叠,更厉害的是它的value也不能一样,那么这样的话它的x和y就是唯一对应的了
a = set([1, 2 ,3])
>>> print(a)
{1, 2, 3}
- 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
- 通过remove(key)方法可以删除元素
可变对象和不可变对象
不可变
- 字符
- 数字
可变
- list