Python学习—推导式,详细讲解,看完小白也能操作

目录

一、列表推导式

二、集合推导式

三、字典推导式

四、元组推导式


一、列表推导式

[expression for item in iterable if condition]

介绍:(1)expression:生成元素的表达式。
(2)item:可迭代对象中的每个元素。
(3)iterable:可迭代对象,如列表、元组、字符串等。
(4)condition(可选):筛选条件,用于过滤元素。

例子:

例一:
# 第一部分 是表达式语句
# 第二部分 是for循环
# 第三部分 条件(可选) 只有满足条件 才将表达式结果放入列表


import random

l2 = [random.randint(0, 10) * i for i in range(10) if i == 1 or i == 5]
print(l2)

# 随机生产两个数的列表


例二:
options = [str(i) for i in range(17)]
print(options)

二、集合推导式

集合推导式类似于列表推导式,但创建的是集合,语法结构为:

{expression for item in iterable if condition}

介绍:(1)expression:是一个计算结果的表达式,用来生成集合中的每个元素。
(2)item:是可迭代对象(例如列表、元组、字符串)中的每个元素。
(3)iterable:是可迭代对象本身。
(4)condition(可选):是一个筛选条件,用于过滤要包含在最终集合中的元素。

例子:

# 集合推导式
# 第一个部分是元素
# 第二部分是循环
# 第三部分是条件
s0 = {i for i in range(10) if i % 3 == 0}
print(s0, type(s0))  # 集合

三、字典推导式

字典推导式允许通过简洁的方式创建字典,语法结构为:

{key_expression: value_expression for item in iterable if condition}

介绍:(1)key_expression:生成字典键的表达式。
(2)value_expression:生成字典值的表达式。
(3)item、iterable和condition 的含义与列表推导式相同。

例子:

# 字典推导式
# 第一部分是关于键和值格式的表达式
# 第二部分是循环
# 第三部分是条件


d0 = {f"key{i}": i ** 2 for i in range(10) if i % 2 == 0}
print(d0, type(d0))

四、元组推导式

动态生成元组,可以通过生成器表达式(Generator Expression)来间接实现类似的功能。生成器表达式与推导式类似,但使用圆括号而不是方括号,并返回一个生成器对象而不是列表。

# 元组推导式:得到一个生成器, 可以通过遍历获取生成器内容
g0 = (i ** 2 for i in range(10) if i % 2 == 1)
print(g0, type(g0))    # 生成器对象
for e in g0:
    print(e)

总结:

(1)推导式可以嵌套,但应当谨慎使用以避免代码变得难以理解。
(2)推导式可以包含多个 for 子句和 if 条件,但通常应保持简洁明了以便于阅读和维护。
(3)在使用推导式时要注意内存消耗,尤其是处理大数据集时,推导式可能会比传统循环更快但也可能消耗更多内存。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值