Python 集合和数据结构备忘单

Python 集合模块和本机数据结构的完整指南。学习列表、字典、集合、元组、双端队列和命名元组。

本机内置类型

标准容器类本身可用,无需额外导入。

方法/功能语法描述
Listmy_list = [1, 2, 3]任意元素的有序、可变、可索引序列。
Dictionarymy_dict = {"key": "val"}键值映射。键必须是唯一的且可散列(不可变)。
Setmy_set = {1, 2, 3}独特的、可散列的项目的无序集合。
Tuplemy_tuple = (1, 2, 3)有序的、不可变的序列。通常用于记录数据类型。

专业集合模块结构

从集合中导入的结构以实现特定的性能特征。

方法/功能语法描述
dequefrom collections import deque双端队列。支持从两端快速添加和弹出 O(1)。
defaultdictfrom collections import defaultdict调用工厂函数来提供缺失值的字典子类。
Counterfrom collections import Counter用于计算可哈希对象数量的字典子类。
namedtuplefrom collections import namedtuple用于创建具有命名字段的元组子类的工厂函数。
OrderedDictfrom collections import OrderedDict记住键插入顺序的字典子类。

交互式演示脚本

run_all_cheat_methods.py
在编辑器中运行
# List
my_list = [1, 2, 3]

# Dictionary
my_dict = {"key": "val"}

# Set
my_set = {1, 2, 3}

# Tuple
my_tuple = (1, 2, 3)

# deque
from collections import deque

# defaultdict
from collections import defaultdict

# Counter
from collections import Counter

# namedtuple
from collections import namedtuple

# OrderedDict
from collections import OrderedDict

常见问题解答

什么时候应该使用双端队列而不是列表?

当您需要从两端进行快速 O(1) 追加和弹出时,请使用 deque(双端队列)。列表在前面插入/删除的复杂度为 O(n)。

defaultdict 是如何工作的?

如果您尝试访问不存在的键,defaultdict 会自动创建一个默认值(例如,list、int),从而防止出现 KeyErrors。

相关主题

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。