python容器--字典
Posted 眰恦ღ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python容器--字典相关的知识,希望对你有一定的参考价值。
字典中存储的每一个元素都是键值对, 并且在字典中根据键(关键字)去查找某个元素的效率非常高.
为了实现高的查询效率, 字典被实现成了一种非序列式容器, 也就导致字典无法根据索引获得元素, 同样也不支持片操作.
字典更占内存,内存换时间
如何定义一个字典呢?
字典中的每一个元素都是一个 键值对,键值之间:
分割, 每个字典元素(键值对)之间用,
分割, 整个字典包括在花括号中
my_dict = key1: value1, key2: value2, key3: value3
键和值的特点:
-
键是唯一的, 如果重复最后的一个键值对会替换前面的,键的类型一般情况下使用字符串、数字类型。
-
值不需要唯一, 可以为任何的数据类型。
如何访问元素?
字典中根据键获得值的操作, Python 提供了两种方式:
-
直接通过键来获得, 但当键不存在时, 会抛出错误.
-
通过 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()
如何遍历元素?
由于字典是非序列式容器, 无法通过逐个获取元素, 所以遍历字典的方式就是先将字典转换成类似列表的形式, 再对其进行遍历. 在获得字典的列表时, 我们有以下三个方案:
-
获得字典键的列表, 通过字典的 keys 方法.
-
获得字典值的列表, 通过字典的 values 方法.
-
获得字典的键值对列表, 通过字典的 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容器--字典的主要内容,如果未能解决你的问题,请参考以下文章