📜  Python设计模式-字典(1)

📅  最后修改于: 2023-12-03 14:46:47.620000             🧑  作者: Mango

Python设计模式-字典

在Python中,字典是一种无序的键值对数据结构。它非常常用,在各个领域都有广泛的应用。

字典的基础使用

字典的基本结构如下:

my_dict = {
    key1: value1,
    key2: value2,
    ...
}

其中,key是一个唯一的字符串或数字,value可以是任何数据类型。可以使用下标操作符[]来访问字典中的元素,也可以使用get()方法来访问。

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict['a'])   # 输出 1
print(my_dict.get('b'))   # 输出 2

字典也支持遍历。可以使用keys()values()items()方法来获取字典中的键、值或键值对。

my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict.keys():
    print(key)
    
for value in my_dict.values():
    print(value)
    
for key, value in my_dict.items():
    print(key, value)
字典的高级使用
字典的推导式

字典推导式是创建字典的一种高效方式。

my_dict = {key: value for key, value in zip(['a', 'b', 'c'], [1, 2, 3])}
print(my_dict)   # 输出 {'a': 1, 'b': 2, 'c': 3}
defaultdict

defaultdictcollections模块中的一个类,可以设置默认值。当访问字典中不存在的键时,返回设定的默认值。

from collections import defaultdict

my_dict = defaultdict(int)
print(my_dict['a'])   # 输出 0

my_dict = defaultdict(list)
print(my_dict['a'])   # 输出 []
Counter

Countercollections模块中的一个类,可以统计序列中每个元素出现的次数。它返回一个字典,其中键为序列中出现的元素,值为该元素出现的次数。

from collections import Counter

my_list = ['a', 'b', 'c', 'b', 'a', 'a']
my_counter = Counter(my_list)
print(my_counter)   # 输出 Counter({'a': 3, 'b': 2, 'c': 1})
OrderedDict

OrderedDictcollections模块中的一个类,可以记录字典中元素的插入顺序。

from collections import OrderedDict

my_dict = OrderedDict()
my_dict['a'] = 1
my_dict['b'] = 2
my_dict['c'] = 3

print(my_dict)   # 输出 OrderedDict([('a', 1), ('b', 2), ('c', 3)])
ChainMap

ChainMapcollections模块中的一个类,可以将多个字典合并成一个字典。如果有重复的键,保留第一个字典中的键值对。

from collections import ChainMap

my_dict_1 = {'a': 1, 'b': 2}
my_dict_2 = {'c': 3, 'd': 4}
my_chainmap = ChainMap(my_dict_1, my_dict_2)

print(my_chainmap['a'])   # 输出 1
print(my_chainmap['c'])   # 输出 3
总结

字典是Python中非常重要的数据结构,通过本文介绍,你应该已经掌握了字典的基础使用方法、高级用法和几个常用的字典类。希望它们能够帮助你提高开发效率。