python容器--字典

Posted 眰恦ღ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python容器--字典相关的知识,希望对你有一定的参考价值。

字典中存储的每一个元素都是键值对, 并且在字典中根据键(关键字)去查找某个元素的效率非常高.

为了实现高的查询效率, 字典被实现成了一种非序列式容器, 也就导致字典无法根据索引获得元素, 同样也不支持片操作.

字典更占内存,内存换时间

如何定义一个字典呢?

字典中的每一个元素都是一个 键值对,键值之间:分割, 每个字典元素(键值对)之间用,分割, 整个字典包括在花括号{}

my_dict = {key1: value1, key2: value2, key3: value3}

键和值的特点:

  1. 键是唯一的, 如果重复最后的一个键值对会替换前面的,键的类型一般情况下使用字符串、数字类型。

  2. 值不需要唯一, 可以为任何的数据类型。

如何访问元素?

字典中根据键获得值的操作, Python 提供了两种方式:

  1. 直接通过键来获得, 但当键不存在时, 会抛出错误.

  2. 通过 get 方法来根据键获得值, 如果键不存在则会返回 None, 该返回默认值也可自定义

person = {'name': 'Obama', 'age': 18, 'sex': '男'}
# 如果 key 不存在会报错
print(person['name'])
# 如果 key 不存在可设置默认值
print(person.get('gender', 'default'))

如何添加和修改元素?

在字典中修改元素, 直接通过键来修改即可. 这时需要注意, 如果键不存在, 默认为新增元素操作, 只有键存在时, 才为修改操作.

person = {'name': 'Obama', 'age': 18, 'sex': '男'}

# 如果 key 不存在会添加新元素
person['salay'] = 12000

# 如果 key 存在才会修改元素
person['age'] = 20

如何删除元素?

Python 中字典中元素的删除, 需要根据键来进行, 我们可以使用 pop 方法根据 key 来删除字典中的元素.

person = {'name': 'Obama', 'age': 18, 'sex': '男'}

# 删除某个元素
person.pop('name')

del person['age']
# del不但能删除字典中的键值对,还能删除变量
a = 10
del a
print(a)

# 清空字典
person.clear()

如何遍历元素?

由于字典是非序列式容器, 无法通过逐个获取元素, 所以遍历字典的方式就是先将字典转换成类似列表的形式, 再对其进行遍历. 在获得字典的列表时, 我们有以下三个方案:

  1. 获得字典键的列表, 通过字典的 keys 方法.

  2. 获得字典值的列表, 通过字典的 values 方法.

  3. 获得字典的键值对列表, 通过字典的 items 方法.

person = {'name': 'Obama', 'age': 18, 'sex': '男'}

# 获得字典的值列表
print(person.values())

# 获得字典的键列表
print(person.keys())

# 获得字典的键值对列表
print(list(person.items()))

# 使用for循环遍历
for key_value in person.items():
 print('key:', key_value[0], 'value:', key_value[1])

# 使用while循环遍历
my_list = list(person.items())
i = 0
while i < len(my_list):
 print('key:', my_list[i][0], 'value:', my_list[i][1])
 i += 1

以上是关于python容器--字典的主要内容,如果未能解决你的问题,请参考以下文章

Python snippet(代码片段)

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

Python基础12_Python中的容器类型公共方法

简明python教程 --C++程序员的视角:容器类型(字符串元组列表字典)和参考

python容器--字典