1.说明
Python的列表推导式(List Comprehension)是一种简洁的方式来创建列表。它通过在方括号中使用一个for循环和一个可选的if语句来生成列表元素。列表推导式是Python中一种非常强大且优雅的特性,可以用来替代传统的for循环来创建列表。
2.调用格式:
列表推导式(List Comprehension)的调用格式遵循以下基本结构:
[expression for item in iterable if conditional]
expression
:对每个元素执行的表达式,通常用于生成新的值。item
:一个临时变量,用于在迭代过程中表示iterable
中的每个元素。iterable
:一个可迭代对象,如列表、元组、字符串、字典、集合或生成器等。conditional
:一个可选的条件语句,用于过滤出满足条件的元素。如果省略此部分,则所有元素都会被包括在内。这个结构可以包含多个
for
循环和if
语句,多个for
循环之间用for
关键字分隔,而if
语句则用来进行条件过滤。
3.案例
示例1:嵌套列表推导式
# 生成一个二维列表,每个内部列表包含0到2的平方
squares = [[x**2 for x in range(3)] for _ in range(3)]
print(squares)
# 输出: [[0, 1, 4], [0, 1, 4], [0, 1, 4]]
示例2:包含多个for循环的列表推导式
# 生成一个列表,包含所有(i, j)元组,其中i是0到2之间的整数,j是0到i之间的整数
pairs = [(i, j) for i in range(3) for j in range(i+1)]
print(pairs)
# 输出: [(0, 0), (1, 0), (1, 1), (2, 0), (2, 1), (2, 2)]
示例3:包含多个if语句的列表推导式
# 生成一个列表,包含0到9之间的所有数字,但只包括偶数且能被3整除的数字
filtered_numbers = [x for x in range(10) if x % 2 == 0 if x % 3 == 0]
print(filtered_numbers)
# 输出: [0, 6, 9]
示例4:使用列表推导式生成字典
# 生成一个字典,键是0到2之间的整数,值是对应的平方
squares_dict = {x: x**2 for x in range(3)}
print(squares_dict)
# 输出: {0: 0, 1: 1, 2: 4}
4.学习心得
在学习陌生的方法上,我们适当用前面的方法去类比记忆,列表推导可以类比匿名函数
lambda arguments: expression
去类比记忆,但是也不能完全照着,以免后期学习走火入魔,我也将会将次链接到python小白笔记中供大家学习记忆