
Python 字典与集合的 6 个用法新手快速上手的实用指南【免费下载链接】python-cheatsheetPython Cheatsheet - interactive hands-on course by LabEx.项目地址: https://gitcode.com/gh_mirrors/pyt/python-cheatsheet这篇文章参考 LabEx 的 python-cheatsheet 项目交互式 Python 速查表写给刚接触 Python 字典与集合的读者。全文从初始化与数据清洗、遍历与转换、成员测试、常见误区四个角度讲 6 个日常脚本里直接能用的用法点。初始化与数据清洗先把数据摆正用 get() 做安全读取字典存的是键值对Python 3.7 起保证插入顺序。当键不一定存在时直接用下标[]会抛 KeyError换成get(key, 默认值)键缺失时返回兜底值逻辑不会中断。config {timeout: 30, retries: 3} timeout config.get(timeout, 10) # 键缺失时返回 10真实场景读配置文件时不同环境字段不全用 get 给每个可选项一个默认值。去重场景下集合怎么写集合最直接的用途是去重把含重复项的列表丢进set()再转回列表即可。如果去重后还要保持首次出现的顺序改用dict.fromkeys()它既去重又保序。tags [web, api, web] unique_tags list(dict.fromkeys(tags)) # [web, api]顺序不变真实场景清洗抓取到的标签、用户 ID 列表里的重复项。遍历与数据转换items() 和推导式items() 一次拿到键和值直接for k in d遍历时只能拿到键取值还得再查一次字典items()让你一次拿到键值对少一次哈希查找。适合把字典逐对导出成报表行按值做筛选这类成对处理的场景。推导式一行完成过滤加转换字典推导式和集合推导式可以在一个表达式里完成过滤 转换其中集合推导式还会顺手去重比先建列表再转 set 少一次遍历。user_age {Alice: 30, Bob: 25} senior {name for name, age in user_age.items() if age 30} # {Alice}成员测试什么时候集合更快百万级数据下 in 运算的差距问某元素在不在时集合的in是 O(1)列表遍历是 O(n)数据量到百万级时这个差距在秒级就能体现。原则是判断值在不在用集合判断键对应什么值用字典两者的查找都走哈希、都是 O(1)。更细的操作对照可以看项目内的 docs/cheatsheet/zh/sets.md 与 docs/cheatsheet/zh/dictionaries.md。踩坑清单三个高频误区空花括号 {} 拿到的是字典直觉误区写s {}以为创建了空集合其实得到的是空字典type(s)一查便知。正确做法空集合要写成s set()。先判断再赋值可以换成 setdefault直觉误区用如果键不在就先塞默认值两行 if 逻辑处理缺省键。正确做法d.setdefault(key, 默认值)一行完成且它会返回该键当前对应的值可直接接在赋值后面用。可变对象当不了字典的键直觉误区拿列表或字典做键代码直接抛 TypeError。原因是字典的键必须可哈希而列表、字典不可哈希。键要用字符串、数字或元组这类可哈希类型。选型速查字典还是集合维度字典集合元素形态键值对单个元素顺序保持插入顺序3.7无序in查找O(1)O(1)典型场景配置、缓存、计数统计去重、成员判断、交并差运算一句话决策需要键 → 值映射选字典只关心在不在、重不重选集合。推导式的更多写法可继续看 docs/cheatsheet/zh/comprehensions.md。【免费下载链接】python-cheatsheetPython Cheatsheet - interactive hands-on course by LabEx.项目地址: https://gitcode.com/gh_mirrors/pyt/python-cheatsheet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考