python推导式

引言

Python推导式是一种简洁的构建列表(list)、集合(set)、字典(dict)等数据结构的方法。它允许我们从其他可迭代对象中快速创建新列表、集合或字典,并可以使用一个表达式来设置每个元素的格式。推导式分为列表推导式、集合推导式、字典推导式以及生成器表达式。

列表推导式

列表推导式提供了从其他列表创建列表的简洁方法。其基本形式如下:

[expression for item in iterable]

示例:

# 从1到10的平方  
squares = [x**2 for x in range(1, 11)]  
print(squares)  
  
# 筛选列表中的偶数并平方  
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]  
print(even_squares)

集合推导式

集合推导式与列表推导式类似,但它返回的是一个集合,而不是列表。集合是一个无序的、不包含重复元素的集。

示例

# 创建一个集合,包含1到10的平方,但去除了重复项(实际上,在这个例子中,没有重复项)  
squared_set = {x**2 for x in range(1, 11)}  
print(squared_set)

字典推导式

字典推导式允许你从其他可迭代对象快速创建字典。每个元素都是一个键值对。

示例

# 创建一个字典,其键是1到5的数字,值是它们的平方  
squared_dict = {x: x**2 for x in range(1, 6)}  
print(squared_dict)  
  
# 使用条件  
even_squared_dict = {x: x**2 for x in range(1, 6) if x % 2 == 0}  
print(even_squared_dict)

生成器表达式

生成器表达式与列表推导式类似,但它返回的是一个生成器对象,而不是一次性生成整个列表。生成器表达式用圆括号()包围,而不是方括号[]

示例

# 生成1到10的平方,但逐个生成  
squares_gen = (x**2 for x in range(1, 11))  
  
# 遍历生成器  
for square in squares_gen:  
    print(square)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值