Python 的隐藏宝藏:collections模块!

摘要:从最流行的数据结构之一defaultdict开始。一旦你开始广泛使用 Python 的字典,就会出现一些问题。例如,默认情况下,当尝试访问不存在的键时,Python 字典会引发 KeyError。

从最流行的数据结构之一 defaultdict 开始。一旦你开始广泛使用 Python 的字典,就会出现一些问题。例如,默认情况下,当尝试访问不存在的键时,Python 字典会引发 KeyError。

使用 defaultdict,可以为缺失的键定义默认值,从而避免错误并减少样板代码。

from collections import defaultdict# Create a defaultdict with default value of 0 for missing keysword_Counts = defaultdict(int)# Count the occurrences of each word in a listwords = ["apple", "banana", "apple", "orange", "banana", "apple"]for word in words: word_counts[word] += 1# Output the word countsprint(word_counts)

它有什么作用

defaultdict(int) 创建一个字典,其中缺少的键默认为 0(来自 int 函数)。每个单词都将被添加到字典中,如果尚不存在,则默认计数为 0。

优势

避免使用 if 语句手动检查键是否存在。简化计数或分组等常见模式。from collections import Counter# Count Character frequencies in a stringtext = "hello world"char_count = Counter(text)# Get the 2 most common charactersmost_common_chars = char_count.most_common(2)# Output the character frequencies and top charactersprint("character Frequencies:", char_count)print("Most Common Characters:", most_common_chars)

它有什么作用

Counter(text) 创建一个类似字典的对象,其中 key 是字符,值是它们的计数。most_common(2) 返回出现频率最高的两个项目。

优势

示例:存储点坐标from collections import namedtuple# Define a namedtuple for 2D PointsPoint = namedtuple("Point", ["x", "y"])# Create Point objectsp1 = Point(3, 4)p2 = Point(5, 7)# Access values using named attributesprint("Point 1:", p1)print("Point 1 X:", p1.x)print("Point 1 Y:", p1.y)与常规元组相比(p1[0] 与 p1.x)相比,提高了可读性。对于定义完整类可能有点过头的小型不可变数据对象非常有用

来源:自由坦荡的湖泊AI一点号

相关推荐