Python 推导式备忘单

用 Python 编写简洁易读的列表、字典、集合和生成器推导式。

列表和集合推导式

使用语法糖循环创建内联序列和集合。

方法/功能语法描述
List Comprehension[x * 2 for x in my_list]通过对可迭代元素应用表达式来构造新列表。
Conditional List[x for x in my_list if x > 0]应用过滤谓词,仅保留满足条件的元素。
Nested Loops[x + y for x in list1 for y in list2]展平嵌套操作。为每个外循环迭代运行内循环。
Set Comprehension{x for x in my_list}生成一个集合,自动应用重复数据删除。

字典和生成器推导式

内联生成映射和惰性评估流。

方法/功能语法描述
Dict Comprehension{k: v for k, v in pairs}构造一个内联字典。
Conditional Dict{k: v for k, v in pairs if k is not None}构造字典,同时忽略不需要的值。
Generator Expression(x ** 2 for x in range(10))返回一个惰性生成器迭代器对象。一次评估一个项目以节省内存。

交互式演示脚本

run_all_cheat_methods.py
在编辑器中运行
# List Comprehension
[x * 2 for x in my_list]

# Conditional List
[x for x in my_list if x > 0]

# Nested Loops
[x + y for x in list1 for y in list2]

# Set Comprehension
{x for x in my_list}

# Dict Comprehension
{k: v for k, v in pairs}

# Conditional Dict
{k: v for k, v in pairs if k is not None}

# Generator Expression
(x ** 2 for x in range(10))

常见问题解答

我什么时候应该避免使用列表推导式?

如果列表推导式过于复杂或具有多个嵌套循环,请避免使用列表推导式,因为这会降低代码的可读性。

列表理解和生成器表达式有什么区别?

列表推导式立即求值并在内存中构造列表,而生成器表达式则按需延迟生成项目,从而节省内存。

相关主题

推荐的 Python 资源

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