📜  Python字典dictionary

📅  最后修改于: 2020-01-13 11:48:35             🧑  作者: Mango

Python中的Dictionary是数据值的无序集合,用于存储数据值(例如映射),与其他仅将单个值作为元素的数据类型不同,Dictionary拥有key:value对。字典中提供了键值,以使其更优化。字典中的每个键值对均以冒号:分隔,而每个key-value对,均以’逗号’分隔。
Python中的Dictionary的工作方式类似于现实世界中的Dictionary。字典的键必须是唯一的,并且是不可变的数据类型,例如字符串,整数和元组,但是键值可以重复,并且可以是任何类型。
注: 词典中的键不允许多态。

创建字典

在Python中,可以通过将元素序列放在大括号{}中并用“逗号”分隔来创建字典。字典包含一对值,一个为Key,另一个对应值为其Key:value。字典中的值可以是任何数据类型,并且可以重复,而键不能重复且必须是不可变的
字典也可以通过内置函数dict()创建。只需将大括号{}放置即可创建空字典。
注:字典键区分大小写。

# 创建空字典
Dict = {}
print("空字典: ")
print(Dict)
# 创建字典,用整数作为key
Dict = {1: '芒果', 2: '文档', 3: '芒果文档'}
print("\n整数作key的字典: ")
print(Dict)
# 创建字典,用混合数据类型作key
Dict = {'名字': '芒果文档', 1: [1, 2, 3, 4]}
print("\n用混合数据类型作key的字典: ")
print(Dict)
# 使用dict()创建字典
Dict = dict({1: '芒果', 2: '文档', 3:'芒果文档'})
print("\n使用dict()创建字典: ")
print(Dict)
# 创建字典,每个项用tuple进行表示
Dict = dict([(1, '芒果'), (2, '文档')])
print("\n每个项用tuple进行表示创建的字典: ")
print(Dict)

输出:

空字典:
{}
整数作key的字典:
{1: '芒果', 2: '文档', 3: '芒果文档'}
用混合数据类型作key的字典:
{1: [1, 2, 3, 4], '名字': '芒果文档'}
使用dict()创建字典:
{1: '芒果', 2: '文档', 3: '芒果文档'}
每个项用tuple进行表示创建的字典:
{1: '芒果', 2: '文档'}

嵌套字典:

# 创建一个嵌套字典
Dict = {1: '芒果', 2: '文档',
        3:{'A' : '欢迎', 'B' : 'To', 'C' : '芒果'}}
print(Dict)

输出:

{1: '芒果', 2: '文档', 3: {'A': '欢迎', 'B': 'To', 'C': '芒果'}}

向字典添加元素

在Python字典中,可以多种方式添加元素。通过将值与键(例如Dict [Key] =’Value’)一起定义,可以一次将一个值添加到字典中。可以使用内置update()方法来更新Dictionary中的现有值。嵌套键值也可以添加到现有字典中。
注: 在添加值时,如果键值已经存在,则该值将被更新,否则将具有该值的新键添加到字典中。

# 创建空字典
Dict = {}
print("空字典: ")
print(Dict)
# 一次添加一个元素
Dict[0] = '芒果'
Dict[2] = '文档'
Dict[3] = 1
print("\n添加三个元素后的字典: ")
print(Dict)
# 对一个key添加多个值
Dict['一些'] = 2, 3, 4
print("\n添加三个值之后的字典: ")
print(Dict)
# 更新已存在key的值
Dict[2] = '欢迎'
print("\n更新后的key值: ")
print(Dict)
# 添加嵌套字典值
Dict[5] = {'嵌套' :{'1' : '生活', '2' : '芒果'}}
print("\n添加嵌套字典值: ")
print(Dict)

输出:

空字典:
{}
添加三个元素后的字典:
{0: '芒果', 2: '文档', 3: 1}
添加三个值之后的字典:
{0: '芒果', 2: '文档', 3: 1, '一些': (2, 3, 4)}
更新后的key值:
{0: '芒果', 2: '欢迎', 3: 1, '一些': (2, 3, 4)}
添加嵌套字典值:
{0: '芒果', 2: '欢迎', 3: 1, 5: {'嵌套': {'1': '生活', '2': '芒果'}}, '一些': (2, 3, 4)}

从字典访问元素

为了访问字典中的项,请使用其键名.Key,可以在方括号[]内使用。还有一种名为get()的方法,该方法也将用于从字典中访问元素。

# Python代码,展示如何从字典中访问元素
# 创建字典
Dict = {1: '芒果', '名字': '文档', 3: '芒果'}
# 使用key访问元素
print("使用key访问元素:")
print(Dict['名字'])
# 使用key访问元素
print("使用key访问元素:")
print(Dict[1])
# 使用get()方法访问元素
print("使用get()方法访问元素:")
print(Dict.get(3))

输出:

使用key访问元素:
文档
使用key访问元素:
芒果
使用get()方法访问元素:
芒果

从字典中删除元素

在Python词典中,可以通过使用del关键字来删除键。使用del关键字,可以删除字典以及整个字典中的特定值。其他功能,例如pop()popitem()也可以用于从字典中删除任意值。字典中的所有项都可以使用clear()方法立即删除。嵌套词典中的项也可以通过使用del关键字并提供特定的嵌套键和要从该嵌套词典中删除的特定键来删除。
注意: del Dict将删除整个词典,因此在删除后进行打印将引发错误。

# 初始化字典
Dict = { 5 : '欢迎', 6 : '来到', 7 : '芒果',
        'A' : {1 : '芒果', 2 : '文档', 3 : '芒果'},
        'B' : {1 : '芒果', 2 : '生活'}}
print("初始化字典: ")
print(Dict)
# 删除一个key的值
del Dict[6]
print("\n删除一个key的值: ")
print(Dict)
# 从一个嵌套字典中删除一个key的值
del Dict['A'][2]
print("\n从一个嵌套字典中删除一个key的值: ")
print(Dict)
# 使用pop()删除字典中的项
Dict.pop(5)
print("\n使用pop()删除字典中的项: ")
print(Dict)
# 使用popitem()删除任意元素
Dict.popitem()
print("\n使用popitem()删除任意元素: ")
print(Dict)
# 删除整个字典
Dict.clear()
print("\n删除整个字典: ")
print(Dict)

输出:

初始化字典:
{'A': {1: '芒果', 2: '文档', 3: '芒果'}, 'B': {1: '芒果', 2: '生活'}, 5: '欢迎', 6: '来到', 7: '芒果'}
删除一个key的值:
{'A': {1: '芒果', 2: '文档', 3: '芒果'}, 'B': {1: '芒果', 2: '生活'}, 5: '欢迎', 7: '芒果'}
从一个嵌套字典中删除一个key的值:
{'A': {1: '芒果', 3: '芒果'}, 'B': {1: '芒果', 2: '生活'}, 5: '欢迎', 7: '芒果'}
使用pop()删除字典中的项:
{'A': {1: '芒果', 3: '芒果'}, 'B': {1: '芒果', 2: '生活'}, 7: '芒果'}
使用popitem()删除任意元素:
{'B': {1: '芒果', 2: '生活'}, 7: '芒果'}
删除整个字典:
{}

字典函数

函数 描述
copy() 他们的copy()方法返回字典的浅拷贝。
clear() clear()方法从字典中删除所有项目。
pop() 从具有给定键的字典中删除并返回一个元素。
popitem() 从字典中删除任意键/值对,并将其作为元组返回。
get() 访问密钥值是一种常规方法。
dictionary_name.values() 返回给定字典中所有可用值的列表。
str() 产生字典的可打印字符串表示形式。
update() 将字典dict2的键值对添加到dict
setdefault() 如果dict中没有key,则设置dict [key] = default
keys() 返回字典字典键的列表
items() 返回字典(键,值)元组对的列表
has_key() 如果输入字典字典,则返回true,否则返回false
fromkeys() 使用seq中的键并将值设置为value创建一个新字典。
type() 返回传递的变量的类型。
cmp() 比较两个字典的元素。