列表、字典推导式介绍和用法|lambda的介绍和用法
- 列表推导式
- 示例应用
- 与传统写法代码行数直观比较
- 字典推导式
- 示例应用
- lambda
- 示例应用
列表推导式、字典推导式、lambda使用简洁语法进行代码的编写
列表推导式
用于快速创建新的列表,通过对现有列表进行迭代和筛选。
语法:new_list = [expression for item in iterable if condition]
expression 是一个表达式,用于定义新列表中的元素。
item 是可迭代对象中的每个元素。
iterable 是一个可迭代对象(如列表、字符串、元组等)。
condition 是一个可选的条件,用于筛选元素并仅包含满足条件的元素。
示例应用
# 表达式输入
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list]
print(squared_list) # 输出 [1, 4, 9, 16, 25]
#存在判断条件
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list if x > 2]
print(squared_list) # 输出 [9, 16, 25]
# 有多个判断条件
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list if x >= 2 and x != 5]
print(squared_list) # 输出 [4, 9, 16]
# 有多个输出
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 if x > 2 else "小于等于2" for x in original_list]
print(squared_list) # 输出 ['小于等于2', '小于等于2', 9, 16, 25]
与传统写法代码行数直观比较
字典推导式
用于创建字典的简洁语法。允许我们使用一种紧凑的方式从可迭代对象中创建字典,并可选地对键和值进行转换、筛选或操作。
语法:{key_expression: value_expression for item in iterable}
key_expression 是对每个元素生成键的表达式
value_expression 是对每个元素生成值的表达式
item 是可迭代对象中的每个元素。
示例应用
# 数据处理,生成新的字典
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 for key, value in numbers.items()}
print(squared_dict) # 输出: {'a': 4, 'b': 16, 'c': 36, 'd': 64}
# 存在条件输出
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 for key, value in numbers.items() if value >= 6}
print(squared_dict) # 输出: {'c': 36, 'd': 64}
# 存在多个输出情况
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 if key == 'c' else value for key, value in numbers.items()}
print(squared_dict) # 输出: {'a': 2, 'b': 4, 'c': 36, 'd': 8}
# 数据转换,列表转字典
fruits = ['apple', 'banana', 'orange']
fruit_dict = {fruit: index for index, fruit in enumerate(fruits)}
print(fruit_dict) # 输出: {'apple': 0, 'banana': 1, 'orange': 2}
lambda
是 Python 中用于创建匿名函数(即没有名称的函数)的关键字。它提供了一种简洁的方式来定义简单的函数,通常用于需要一个简单函数作为参数传递给其他函数的情况。
语法:lambda arguments: expression
arguments:函数的参数列表,可以包含零个或多个参数。
expression:函数的返回值表达式。
示例应用
add = lambda x, y: x + y
result = add(3, 5)
print(result) # 输出: 8
在这个示例中,我们使用 lambda 创建了一个接受两个参数 x 和 y 的匿名函数。函数体中的表达式 x + y 计算了这两个参数的和。然后我们通过调用 add(3, 5) 来使用这个 lambda 函数,并将结果赋给变量 result,最后打印输出结果。
lambda 函数通常用于需要一个简单函数的场景,例如在函数式编程中使用 map()、filter()、reduce() 等函数,或者在需要定义短小的回调函数(将一个函数作为参数传递给另一个函数,在特定事件或条件发生时被调用的函数)时使用。
map()、filter()、reduce() 等函数的具体使用参考另一篇博客