Python学习计划——2.4列表推导式(List Comprehensions)

列表推导式是Python的一种简洁且强大的语法,用于生成新的列表。它可以用更少的代码、更清晰的方式来创建列表,特别是在处理简单的循环和条件操作时。

1. 基本语法

列表推导式的基本语法如下:

[expression for item in iterable]
  • expression:表达式,计算结果用于生成列表的元素。
  • item:迭代变量,从可迭代对象中取出每个元素。
  • iterable:可迭代对象,如列表、元组、字符串等。

示例:

# 使用列表推导式生成平方数列表
squares = [x**2 for x in range(10)]
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2. 带条件的列表推导式

可以在列表推导式中加入条件判断,只包括满足条件的元素。

[expression for item in iterable if condition]

示例:

# 使用列表推导式生成偶数平方列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)  # 输出: [0, 4, 16, 36, 64]
3. 嵌套列表推导式

列表推导式可以嵌套,用于处理多层循环。

[expression for item1 in iterable1 for item2 in iterable2]

示例:

# 使用嵌套列表推导式生成笛卡尔积
cartesian_product = [(x, y) for x in range(3) for y in range(3)]
print(cartesian_product)  # 输出: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
4. 带多个条件的列表推导式

可以在列表推导式中加入多个条件判断。

[expression for item in iterable if condition1 and condition2]

示例:

# 使用列表推导式生成符合多个条件的元素
filtered_list = [x for x in range(20) if x % 2 == 0 and x % 3 == 0]
print(filtered_list)  # 输出: [0, 6, 12, 18]
5. 字符串操作中的列表推导式

列表推导式可以用于处理字符串的操作,如将字符串中的每个字符转换为大写。

# 将字符串中的每个字符转换为大写
uppercase_letters = [char.upper() for char in "hello"]
print(uppercase_letters)  # 输出: ['H', 'E', 'L', 'L', 'O']
6. 使用函数的列表推导式

可以在列表推导式中调用函数来生成新列表。

def square(x):
    return x**2

# 使用函数生成平方数列表
squares = [square(x) for x in range(10)]
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
7. 可运行的Python案例

下面是一个完整的Python程序,演示了各种列表推导式的用法。

# 1. 基本列表推导式
squares = [x**2 for x in range(10)]
print("平方数列表:", squares)  # 输出: 平方数列表: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 2. 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print("偶数平方列表:", even_squares)  # 输出: 偶数平方列表: [0, 4, 16, 36, 64]

# 3. 嵌套列表推导式
cartesian_product = [(x, y) for x in range(3) for y in range(3)]
print("笛卡尔积:", cartesian_product)  # 输出: 笛卡尔积: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

# 4. 带多个条件的列表推导式
filtered_list = [x for x in range(20) if x % 2 == 0 and x % 3 == 0]
print("符合多个条件的列表:", filtered_list)  # 输出: 符合多个条件的列表: [0, 6, 12, 18]

# 5. 字符串操作中的列表推导式
uppercase_letters = [char.upper() for char in "hello"]
print("大写字母列表:", uppercase_letters)  # 输出: 大写字母列表: ['H', 'E', 'L', 'L', 'O']

# 6. 使用函数的列表推导式
def square(x):
    return x**2

squares = [square(x) for x in range(10)]
print("使用函数生成的平方数列表:", squares)  # 输出: 使用函数生成的平方数列表: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

可以将上面的代码复制到你的IDE中运行,观察程序的输出。这个案例综合了列表推导式的各种用法,帮助你理解和掌握这些操作。继续加油,学习Python会越来越有趣和有用!

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值