Python推导式

目录

1.列表推导式

2.元组推导式

3.字典推导式

4.集合推导式


Python中的推导式是一种简洁、高效的构造列表、集合、字典和生成器表达式的方法。它允许你在一行代码中以简洁的方式表达循环和条件逻辑。推导式通常比传统的循环代码更加简洁和易读。

它通常分为以下几种:列表推导式,元组推导式,字典推导式,集合推导式。

1.列表推导式

列表推导式的组成分为三部分:第一部分是表达式语句,第二部分是for循环,第三部分是筛选条件(可有可无,根据情况选择是否写条件)。

import random
# 列表推导式
l1 = [random.randint(0, 10) * i for i in range(10) if i == 1 or i == 5]
print(l1)       # [1, 10]

# 可以使用str将i转换为字符串格式
options = [str(i) for i in range(5)]
print(options)      # ['0', '1', '2', '3', '4']

对于列表l1,如果没有if后的条件,是将i取0-9时前方表达式的值都放入列表,而加上if的限制后,则变成当i的值取1和5时才将随机到的数放入l1中。

对于options列表则是将0-4都放入option列表,并将其通过str转换为字符串,这是因为我们在写一些简单的系统的时候,用户输入的数字实际为字符串类型,使用这样的推导式可以有效避免因未对用户输入进行int转化而导致的报错。

2.元组推导式

元组推导式的组成分为三部分,第一部分是表达式语句,第二部分是for循环,第三部分是筛选条件(可有可无,根据情况选择是否写条件),与列表相同。

# Iterable(迭代器)  Generator(生成器:是特殊的迭代器)
# 元组推导式: 得到一个生成器, 可以通过遍历获取生成器内容
g0 = (i ** 2 for i in range(10) if i % 2)
print(g0)       # <generator object <genexpr> at 0x00000185533AFED0>
for e in g0:
    print(e)    # 1, 9, 25, 49, 81

元组推导式的返回结果不是具体的元组,而是一个生成器,但是我们可以通过遍历来获取到生成器内的元素。

3.字典推导式

字典推导式的组成分为三部分:第一部分是关于键和值的表达式,第二部分是for循环,第三部分是筛选条件(可有可无,根据情况选择是否写条件)。

# 字典推导式
# 第一部分是关于键和值格式的表达式
# 第二部分是循环
# 第三部分是条件
d0 = {f"key{i}": i ** 2 for i in range(10) if i % 2 == 0}
print(d0)     # {'key0': 0, 'key2': 4, 'key4': 16, 'key6': 36, 'key8': 64}

4.集合推导式

集合推导式的组成分为三部分:第一部分是元素,第二部分是for循环,第三部分是筛选条件(可有可无,根据情况选择是否写条件)。

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

总之,使用推导式可以显著提高 Python 代码的质量、可读性和性能。在编写 Python 代码时,应该优先考虑使用推导式来简化代码逻辑和降低复杂性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值