Python 中的生成器表达式
基本语法结构
python
(表达式 for 循环变量 in 可迭代对象 if 条件判断)
if 条件判断可选
举例
生成器表达式写法(代码中的简洁写法)
python
left_count = sum(1 for i in range(lo, hi + 1) if nums[i] == left)
普通 for 循环写法(等价,更易理解)
python
left_count = 0 # 初始化计数器
for i in range(lo, hi + 1): # 遍历区间索引
if nums[i] == left: # 条件判断
left_count += 1 # 满足条件则计数器+1
匿名函数(lambda 表达式)
python
lambda 参数列表: 表达式
表达式计算的结果就是返回值
举例
匿名函数写法
python
# 嵌套生成器表达式 + sum()
count_odd = lambda nums: sum(1 for i in nums if i % 2 != 0)
print(count_odd([1,2,3,4,5])) # 返回 3(奇数的个数)
等价写法
python
# 等价的普通函数
def count_odd_numbers(nums):
odd_count = 0
for i in nums:
if i % 2 != 0:
odd_count += 1
return odd_count