dict 是python内置的字典函数
他使用
键-值(key-value)这种方式存储
用法
字典名={'键名': '键值','键名': '键值','键名': '键值'}
整型键值无需加引号
需要注意的是:后面有一个空格
具体用法
![](https://i-blog.csdnimg.cn/blog_migrate/be66c5d2acb50c9e99a9e8562286ac11.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a4b52fdc82ef7e1d15c17a64b43243a8.png)
字典键名是允许重复的,但是键值会取最后赋值的哪个键值
例:
![](https://i-blog.csdnimg.cn/blog_migrate/e9da6fe06eb77ec6d278fffca823a9fa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1be97ab6e93ae5f71e3ef9dc4fad0449.png)
python提供了两种方法来判断,字典内是否存在键名 X
'键名' in 字典名
![](https://i-blog.csdnimg.cn/blog_migrate/4fa743afa83278bc150aa31c25a57498.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6a55cd71fd48883e206d469e20af1b4d.png)
该函数返回的是一个布尔值
第二中是通过get方式 具体用法如下:
字典名.get['键名',如果不存在该键名返回的值(自定)]
例子:
![](https://i-blog.csdnimg.cn/blog_migrate/6fc867c79d3914898a6f40e99817bd19.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d01e97cfeb7bdc373f139a45d73a087d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ea5698cf77165f1e833739013f87ca48.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c2310159bddbae2dc60ca10fdf22d6d5.png)
可以看出当字典内存在该键名时,函数返回该键名对应的键值
如果不存在,则反悔5(这个5是我自己定义的,你写成什么用都行)
和list比较,dict有以下几个特点:
-
查找和插入的速度极快,不会随着key的增加而变慢;
-
需要占用大量的内存,内存浪费多。
而list相反:
-
查找和插入的时间随着元素的增加而增加;
-
占用空间小,浪费内存很少。
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key
![](https://i-blog.csdnimg.cn/blog_migrate/8239f0a2b81acc13f4753033b47045d5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9b37a5e3104be9c0fd88dc44d0c80364.png)
可以使用add(key)的方法,添加元素到set中
例:
![](https://i-blog.csdnimg.cn/blog_migrate/27518b8870e5953fc366e023ce3c02f8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/60a75d649e9e9227d6ff43fcb9aeee81.png)
remove()也可以通过该函数删除集合内的元素
![](https://i-blog.csdnimg.cn/blog_migrate/98a6331a41e4b4361fa40fb939e8f8d6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e20ac93cf271b8ec466afd4152c19755.png)
关于可变对象和不可变对象
可变对象列举:
由用户自定义的或者系统提供给用户使用的变量
不可变对象的讲解:
不可变对象有 字符串 整数 浮点数 元组 等
我们先拿整数举例
当我们定义变量的时候用到 n=33
这个过程是这样完成的:
1.系统先在创建一个整型数字 33
2.然后在创建一个变量n
3.接着利用类似键值对的方法 让 变量n的值指向 数字33 即: n->33
当我们更改变量的值的时候 例 n=50
实际上是,系统在创建一个整型数字50,然后让n指向变量50
而整型数字33并没有被改变
这个过程改变的是n的指向(类似C语言内的指针)