字典这个数据结构活跃在所有Python程序的背后即便是你的源码里并没有直接用到它。
什么是字典
在Python中,字典指的是通过名字或者关键字来引用值的数据结构。根据一个信息去查找另一个信息的方式构成了“键值对”。“键值对”表示的是键和值构成的成对关系。字典中的每个元素是由键和值组成。
# key 是键
# value 是值
{key : value}
就像新华字典
通过音或者部首(key)→查找对应的汉字(value)
字典特征
1、多样性:字典和列表一样,也能够存储多个数据。
它不能通过索引来获取, 而是通过键来获取
2、无序性:字典的底层用了hash表这种数据结构。所以输出的顺序和定义的顺序是不一致的。
之前学习的列表、元祖都是根据顺序来添加元素的。
注意:在python3.5之前字典存储是无序的,所以输出顺序和定义顺序是不一致的。python3.5之后字典存储是有序的。所以根据python版本的不同,展示的数据可能有一定的区别。
字典不能通过索引来取值,本质还是个无序的数据类型
3、唯一性:在字典中的键必须是唯一值,如果出现了两次的话后面出现的就会覆盖掉之前出现的键值对。
当查找许多数据的时候, 字典查找会比列表快得多,比如要定位某个数据, 在不知道索引值得情况下, 就要使用for循环一一比较, 而字典直接通过key来定位到某个元素。
因为字典的底层逻辑用了一种神奇的哈希函数。我们只需要通过键就能找到对应的值。
字典如何使用
1、如何创建字典
在Python中。使用一对大括号{}就可以直接创建字典,里面的元素由键值对组成, 一个元素对应一个键值对。元素之间同样使用逗号隔开。
语法:
{key1: value1, key2: value2, key3: value3, ......}
例子:
dic1 = {'username': '张三', 'age': 18, 'sex': '男', 'username': '李四'}
# {'username': '李四', 'age': 18, 'sex': '男'} 出现相同的键, 后面的会覆盖前面
print(dic1)
根据键进行取值:和列表获取方式差不多只是将中括号中的索引值换成了键
dic1 = {'username': '张三', 'age': 18, 'sex': '男', 'username': '李四'}
# 李四
print(dic1['username'])