Python基础:推导式(Comprehensions)详解

在这里插入图片描述

1. 推导式概念

  Python推导式(comprehensions)是一种简洁而强大的语法,用于从已存在的数据(列表、元组、集合、字典等)中创建新的数据结构。推导式包括:

  • 列表推导式
  • 元组推导式
  • 字典推导式
  • 集合推导式

2. 列表推导式

  列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。
  例如:创建平方值的列表

squares = []
for x in range(10):
    squares.append(x**2)
print(squares)

在这里插入图片描述
  这段代码创建(或覆盖)变量 x,该变量在循环结束后仍然存在。
  下述方法可以无副作用地计算平方列表:

# 1)第一种方式
squares = list(map(lambda x : x**2 in range(10)))

# 2) 第二种方式
squares = [x**2 for x in range(10)]

2.1 语法格式

  列表推导式(List comprehension)是一种在一行代码中创建和操作列表的简洁方式。
  它的基本语法形式如下:

[expression for item in iterable if condition]
  1. expression是对 item的操作或表达式,可以是有返回值的函数。
    2.item是迭代变量,表示可迭代对象中的每个元素。
  2. iterable是可迭代对象,如列表、元组、字符串等。
  3. condition是一个可选的条件,用于过滤元素。

  注意:列表推导式的方括号内包含以下内容:一个表达式,后面为一个 for 子句,然后,是零个或多个forif 子句。结果是由表达式依据 for if 子句求值计算而得出一个新列表。

[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
"""
    上述推导式等同于:
        combs = []
        for x in [1,2,3]:
            for y in [3,1,4]:
                if x != y:
                    combs.append((x, y))
        combs
"""
# 输出 [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

2.2 示例及应用

"""
筛选和转换数据: 
列表推导式允许你根据特定的条件从一个列表中选择或转换元素,从而创建一个新的列表。例如,你可以过滤出所有的偶数或将列表中的字符串转换为大写。
"""
# 筛选偶数
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)

# 过滤出字符串列表中长度大于3的单词
words = ['python', 'is', 'awesome', 'and', 'fun']
long_words = [word for word in words if len(word)>=3]
print(long_words)

# 转换字符串为大写
words = ['hello', 'world', 'python']
upper_words = [word.upper() for word in words]
print(upper_words)

  运行效果:

在这里插入图片描述


                
  • 72
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snail哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值