字典和列表一样,也是python内置的一种数据结构。 字典的结构如下图:
![a85915e641b2e3def001274984d6b082.png](https://img-blog.csdnimg.cn/img_convert/a85915e641b2e3def001274984d6b082.png)
列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的关系。画个难看的图表示一下:
![149f18fb9f875c49c716aa96d6dc1dc3.png](https://img-blog.csdnimg.cn/img_convert/149f18fb9f875c49c716aa96d6dc1dc3.png)
字典中的键要求是唯一的,这个很好理解,如果有两个键是一样的,那我怎么知道要找到是哪个键对应的值呢?字典中的键还必须是不可变的类型,如数字、字符串和元组。如果用可变类型做键会报错,如列表:
![9a757eb34c9c6f8fcfd8f01b14329422.png](https://img-blog.csdnimg.cn/img_convert/9a757eb34c9c6f8fcfd8f01b14329422.png)
使用列表作为键会报unhashable type(只可意会不可言传的翻译...) 。当然正常情况下也不会像测试代码中这样用,这样用字典会累死。
知道了字典是个什么东西以后,接下来看看字典要怎么用?
1.增加字典中的元素
![4d4aa45ccd65abda1d0c0ae6bdee869f.png](https://img-blog.csdnimg.cn/img_convert/4d4aa45ccd65abda1d0c0ae6bdee869f.png)
给字典增加元素可以用update函数,也可以用[]运算符,测试代码中由于之前不包含键为c的元素,因此实现了添加新元素的目的。如果是已存在的键,则会覆盖之前的值。值得注意的是列表中也用到[]运算符,只不过列表中[]内填的是下标,而字典填的是键。
2.删除字典中的元素
![b689e4d43a1281954d25241450099385.png](https://img-blog.csdnimg.cn/img_convert/b689e4d43a1281954d25241450099385.png)
删除字典里的元素可以用pop和del(指定要删除的键)。清空所有元素用clear,把字典直接删掉用del。
3.查询和修改字典中的元素
![6235d9054a98ac723be277fb1b5defda.png](https://img-blog.csdnimg.cn/img_convert/6235d9054a98ac723be277fb1b5defda.png)
字典中元素的访问和修改都是用[]。不赋值就是访问,赋值就是修改,要是修改的键不存在就新增,要是访问的键不存在就报错。访问字典元素还可以用get函数如d.get('a'),使用get函数访问不存在的键不会报错,它会返回None。
4.其他。
![4b61e3fca3da56b244b27b3ad1644036.png](https://img-blog.csdnimg.cn/img_convert/4b61e3fca3da56b244b27b3ad1644036.png)