使用字典字面量创建字典的 Python 程序
字典用于像映射一样以键:值对的形式存储数据值(与其他数据类型不同,它仅将单个值作为元素)。字典中提供了键:值以使其更有效。
键是唯一的。字典键必须唯一。因此,字典中不允许重复值。字典项是有序的、可更改的、不可变的。可更改的意思是,在创建字典后,我们可以添加或删除项。
在 Python 中,字典定义为数据类型为“dict”的对象。字典项中的值可以是任何数据类型,例如字符串、整数、布尔值和列表。为了确定字典包含多少个项,我们使用 len() 函数。
字典键区分大小写,即,相同键名但大小写不同的键在 Python 字典中被视为不同的键。
如何使用字典字面量创建字典?
我们可以使用花括号 {} 创建字典。通过将元素放置在花括号 {} 内,使用冒号 (:) 分隔键值,并在每对之间使用逗号分隔。字典可以包含整数、字符串、布尔值和列表。这些类型的字典称为混合字典。
这里,这些花括号 {}、冒号 (:)、逗号 (,) 是字面量。
Python 提供了内置函数 dict() 方法用于创建字典。空花括号 {} 用于创建空字典。
示例
这里,在这个程序中,我们使用花括号 {} 创建了字典,并使用冒号 (:) 分隔了键值对。字典“a”包含整数和字符串。字典“b”仅包含整数,同样“c”包含字符串和列表。字典“d”是空字典。
a= {1:'rose',2:'lily',3:'jasmine'} b= {1:5,3:7,8:6,9:4} c= {'spider':'man','captain':'america', 'iron': ["tony","starks"]} d= {} print(a) print(b) print(c) print(d)
输出
{1: 'rose', 2: 'lily', 3: 'jasmine'} {1: 5, 3: 7, 8: 6, 9: 4} {'spider': 'man', 'captain': 'america', 'iron': ['tony', 'starks']} {}
字典类型
Python 中有四种类型的字典:
有序字典
默认字典
链式映射
计数器
有序字典
在这种类型的字典中,键是有序的,它保持元素的插入顺序。 dict() 和 ordereddict() 之间的唯一区别在于,ordereddict() 保留键插入的顺序。而 dict 不会跟踪插入顺序。
示例
这里,在这个程序中,我们导入了 ordereddict() 来创建有序字典。我们观察到输出的顺序与插入顺序相同。
from collections import OrderedDict a= OrderedDict() a[1]= "apple" a[2]= "mango" a[3]= "cherry" for key,value in a.items(): print(key,value)
输出
1 apple 2 mango 3 cherry
默认字典
默认字典是 collection 模块中存在的类似字典的容器。在这些类型的字典中,为不存在的键提供键的默认值。例如:
示例
这里,在这个程序中,我们导入了 defaultdict() 来创建默认字典。我们观察到输出对于不存在的键显示为“不存在”。
from collections import defaultdict def def_value(): return "not existing" a=defaultdict(def_value) a[1]= "hello" print(a[2])
输出
Not existing
链式映射
它是一个容器,将多个字典组合成一个单元。它存在于 collections 库中。Maps() 返回相应的键以及相应字典的值。例如:
示例
这里,在这个程序中,我们导入了 ChainMap() 来创建链式映射。chainmap() 添加了两个列表并将其转换为一个。
from collections import ChainMap a= {1:'apple',2:'cherry'} b= {3:'feed', 4:'dogs'} c= ChainMap(a,b) print(c)
输出
ChainMap({1: 'apple', 2: 'cherry'}, {3: 'feed', 4: 'dogs'})
Counter()
它是一个集合,其中元素存储为字典键,它们的计数存储为字典值。Counter() 用于计算句子中单词的频率。
示例
这里,在这个程序中,我们导入了 Counter() 来创建 Counter 字典。Counter() 拆分句子并将其转换为字典。
from collections import Counter l= 'an apple a day keeps doctor away' a= Counter(l.split()) print("counter dict:") print(a)
输出
counter dict: Counter({'an': 1, 'apple': 1, 'a': 1, 'day': 1, 'keeps': 1, 'doctor': 1, 'away': 1})
结论
在本文中,我们简要讨论了如何使用字面量创建字典以及字典的类型。