集合与字典推导式
将推导式模式应用于集合和字典。
集合与字典推导式 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
简介
相同的推导式语法也适用于集合和字典,分别用于生成唯一元素以及键值映射。
集合推导式语法
{expression for item in iterable} 使用花括号,但不包含冒号。结果是集合,即无序且元素唯一。
unique_lens = {len(w) for w in ['apple','banana','fig']}
print(unique_lens)使用集合推导式去重
重复的表达式会被静默丢弃。{x%3 for x in range(9)} 的结果是 {0,1,2}。
mods = {x % 3 for x in range(9)}
print(mods)带条件的集合推导式
{x for x in range(20) if x%2==0 and x%3==0} 会生成同时能被 2 和 3 整除的数字。
print({x for x in range(20) if x%2==0 and x%3==0})字典推导式语法
{key_expr: val_expr for item in iterable} 在 for 之前使用 key:value。它会创建一个字典。
squares = {x: x**2 for x in range(5)}
print(squares)带条件的字典推导式
{k: v for k, v in d.items() if v > 0} 会将字典筛选为只包含正值。
d = {'a': 1, 'b': -2, 'c': 3}
pos = {k: v for k, v in d.items() if v > 0}
print(pos)反转字典
{v: k for k, v in d.items()} 会交换键和值。要求所有值都唯一且可哈希。
d = {'a': 1, 'b': 2, 'c': 3}
print({v: k for k, v in d.items()})使用字典推导式分组
{letter: [w for w in words if w[0]==letter] for letter in 'abc'} 会根据首字母对单词进行分组。
words = ['apple','ant','banana','cherry','cat']
grouped = {l: [w for w in words if w.startswith(l)] for l in 'abc'}
print(grouped)将两个列表合并为字典
当需要进行转换时,{k: v for k, v in zip(keys, vals)} 比 dict(zip(keys, vals)) 更简洁。
keys = ['x', 'y', 'z']
vals = [1, 4, 9]
print({k: v**0.5 for k, v in zip(keys, vals)})嵌套字典推导式
{i: {j: i*j for j in range(3)} for i in range(3)} 会创建一个由嵌套字典组成的乘法表。
table = {i: {j: i*j for j in range(3)} for i in range(3)}
print(table)如何选择
需要唯一值时使用集合推导式。需要键值映射时使用字典推导式。顺序重要时使用列表推导式。
words = ['hello', 'world', 'hello']
unique = {w for w in words}
lengths = {w: len(w) for w in unique}
print(lengths)快速检查
集合推导式和字典推导式之间的关键语法区别是什么?
回顾
集合推导式:{expr for x in it}。字典推导式:{k: v for x in it}。两者都支持使用 if 进行筛选。字典要求键唯一且可哈希。
继续学习
太棒了!请继续下一课,以进一步提升您的技能。
常见问题解答
「集合与字典推导式」课时是免费的吗?
是的 — 「集合与字典推导式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「集合与字典推导式」这节课中我会学到什么?
将推导式模式应用于集合和字典。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「集合与字典推导式」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。