9 Python的推导式

这篇具有很好参考价值的文章主要介绍了9 Python的推导式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

        在上一节,我们介绍了Python的迭代器和生成器,包括:使用迭代器、创建迭代器、创建生成器、使用生成器等内容。在这一节中,我们将介绍Python的推导式。Python的推导式是一种简洁、强大的表达式,是编写复杂迭代逻辑的简洁方式,也是Python语言的一大特色,可以用于生成列表、元组、集合和字典。

        推导式是一种在Python中用于创建新的数据结构的表达式,通过使用for循环和if语句来从已有的数据中创建新的数据。推导式在语法上与普通的表达式有些类似,但是它有一个特殊的语法结构,可以让我们在表达式中执行更复杂的操作。

        推导式的定义非常简单,它由一个for循环和一个可选的if语句组成。我们可以在for循环中迭代一个可迭代对象,并在if语句中添加一些条件来筛选出我们想要的数据。

列表推导式

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

          [expression for item in iterable if condition]

        下面对上述语法中的各个元素作一个简单的介绍。

        expression:是一个表达式,用于对每个item进行计算并生成一个新的元素。

        item:是一个变量,在iterable中取值。

        iterable:是一个可迭代对象,比如:列表、元组、集合等。

        condition:是一个条件表达式,用于筛选出满足条件的元素。它是可选的,如果省略,则不进行筛选。

        在下面的示例代码中,我们使用列表推导式生成一个包含1到10之间的奇数的列表。其中,expression是x,item是range(1, 10)中的每个元素,iterable是range(1, 10),condition是 x % 2 != 0,最终生成的列表包含1到10中的所有奇数。

odd_number = [x for x in range(1, 10) if x % 2 != 0]
# 输出: [1, 3, 5, 7, 9]
print(odd_number)

        再来看下面的示例代码,我们使用列表推导式生成了1到5的立方值。

cubed_number = [x**3 for x in range(1, 6)]
# 输出:[1, 8, 27, 64, 125]
print(cubed_number)

元组推导式

        元组推导式与列表推导式类似,但是它用来生成元组。元组是一种不可变的序列类型,可以包含任何类型的元素。

        元组推导式的语法如下:

          (expression for item in iterable if condition)

        这与列表推导式非常相似,主要区别在于使用圆括号而不是方括号来创建元组。与列表推导式不同的是,元组推导式返回的结果是一个生成器对象,需要使用tuple()函数,将生成器对象转换为元组。

        在下面的示例代码中,我们创建了一个元组,其颜色字符串的长度值大于等于5。

all_colors = ['red', 'blue', 'pink', 'purple', 'white']
passed_colors = (item + ' passed' for item in all_colors if len(item) >= 5)
# 返回一个生成器对象,输出:<generator object <genexpr> at 0x000001BD9F422B20>  
print(passed_colors)
# 转换为元组,,输出:('purple passed', 'white passed')
print(tuple(passed_colors))

集合推导式

        集合推导式是一种创建集合的简洁方式,它允许你通过一个表达式来定义集合的元素,通常用于从已有的数据中创建新的集合。

        集合推导式的语法如下:

          {expression for item in iterable if condition}

        其中,expression是一个用于生成每个元素的表达式,item是iterable中的元素,iterable是要迭代的序列,condition是一个可选的条件表达式,用于过滤序列中的元素。

        在下面的示例代码中,我们有一个所有水果的列表,然后使用集合推导式生成了一个名称长度为奇数的水果的集合。

def is_odd_len(s):
    return len(s) % 2 == 1

all_fruits = ['pineapple', 'banana', 'cherry', 'watermelon', 'dates']
odd_len_fruits = {item for item in all_fruits if is_odd_len(item)}
# 输出:{'pineapple', 'dates'}
print(odd_len_fruits)

字典推导式

        字典推导式是一种创建字典的简洁方式,它允许你通过一个表达式来定义字典的键值对,这个表达式通常包含一个循环和一个条件判断。

        字典推导式的语法如下:

          {key_expression: value_expression for item in iterable if condition}

        其中,key_expression和value_expression是用于生成每个键值对的表达式,item是iterable中的元素,iterable是要迭代的序列,condition是一个可选的条件表达式,用于过滤序列中的元素。

text = "hello CSDN by hope_wisdom"
word_len_dict = {item: len(item) for item in text.split()}
# 输出:{'hello': 5, 'CSDN': 4, 'by': 2, 'hope_wisdom': 11}
print(word_len_dict)

条件推导式

        条件推导式是一种简洁的语法,用于根据条件选择不同的表达式结果。它类似于三元运算符(expr1 if condition else expr2),但具有更广泛的用途。

        条件推导式的语法如下:

          [expression1 if condition else expression2 for item in iterable]

        其中,expression1和expression2是两个可选的表达式,condition是一个条件表达式,item是iterable中的元素。

        在下面的示例代码中,对于列表中的每个元素,如果元素是偶数,则返回该元素的平方,否则返回该元素本身。文章来源地址https://www.toymoban.com/news/detail-692214.html

numbers = [1, 2, 3, 4, 5]
even_squares = [x**2 if x % 2 == 0 else x for x in numbers]
# 输出 [1, 4, 3, 16, 5]
print(even_squares)

到了这里,关于9 Python的推导式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python——第3章 列表、元组、字典、集合与字符串

    append()、insert()、extend() pop()、remove() count()、index() sort()、reverse() 切片是用来获取列表、元组、字符串等有序序列中部分元素的一种语法。在形式上,切片使用2个冒号分隔的3个数字来完成。 [start🔚step] 其中第一个数字start表示切片开始位置,默认为0;第二个数字end表示切片

    2024年02月07日
    浏览(60)
  • Python中列表,元组,集合,字典哪些数据结构支持双向索引?

    在Python中,我们常用的内置数据结构有列表、元组、集合和字典。其中,只有列表和元组支持双向索引,可以通过正向索引和负向索引访问元素。而字典和集合不支持索引。 在Python中,内置的数据结构主要包括: 列表(list):有序,可变的数据集合,可以通过索引访问元素。 元组(tuple)

    2024年02月08日
    浏览(63)
  • 【Python指南 | 第四篇】列表、元组、集合及字典,这一篇就够了

    在这一篇中,我们将介绍列表、元组、集合及字典的相关知识点。 列表(List)是一种有序、可变且允许重复元素的数据结构,它可以完成大多数集合类的数据结构实现。 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(即嵌套)。 列表的形式:元素写

    2024年02月02日
    浏览(45)
  • 【Python零基础学习入门篇④】——第四节:Python的列表、元组、集合和字典

    ⬇️⬇️⬇️⬇️⬇️⬇️ ⭐⭐⭐Hello,大家好呀我是陈童学哦,一个普通大一在校生,请大家多多关照呀嘿嘿😁😊😘 🌟🌟🌟 技术这条路固然很艰辛,但既已选择,该当坚毅地走下去,加油! 🌤️PUA: ” 你所看到的惊艳都曾平庸历练 **“**🚀🚀🚀 🍉🍉🍉 最后让我

    2024年02月04日
    浏览(73)
  • 更深层次理解Python的 列表、元组、字典、集合(工作面试学习必需掌握的知识点)

    目录 序列介绍 列表  列表的创建 range()创建整数列表   推导式生成列表

    2024年02月22日
    浏览(46)
  • 【Python 笔记(二)——基本语句 变量类型 字符串 序列 列表与元组 字典与集合】

    在 Python 中,基本语句可以帮助我们完成一些基本的操作,如控制流程、定义函数等。以下是 Python 中的几种基本语句: if 语句 if 语句用于判断某个条件是否成立,如果条件成立则执行相应的代码块。 for 语句 for 语句用于遍历序列中的元素,依次执行相应的代码块。 while 语

    2024年02月08日
    浏览(50)
  • 100天精通Python丨基础知识篇 —— 05、7大基础数据类型详解(变量、列表、集合、字典、元组)

    《100天精通Python专栏 - 快速入门到黑科技》 是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造,专栏分为基础知识篇和黑科技应用篇。 基础知识篇 以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框

    2023年04月18日
    浏览(63)
  • Python数据容器(列表list、元组tuple、字符串str、字典dict、集合set)详解

    相关介绍: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为一个元素。每一个元素,可以是任意类型的数据 分为五类: 列表[list]、元组(tuple)、字符串(str)、集合{set}、字典{dict} 相应区别: 列表 元祖 字符串 集合 字典 元素数量 多个 多个 多个 多个 多个 元素类

    2024年02月11日
    浏览(85)
  • Python基础之列表、元组和字典

    引言 Python中的 列表 (英文叫list) 、 元组 (英文叫tuple)和 字典 (dictionary) 也是 序列 特性的,它们也是非常常用的数据类型。 01、概述 列表(List)对象 经常被用来 存储 数据对象。我们可以把列表想象为 一连串的储物格,就像下面这样: 其中每个储物格里面都可以存储 任

    2024年02月06日
    浏览(46)
  • Python 中将元组列表转换为字典

    使用 dict 类将元组列表转换为字典,例如 my_dict = dict(list_of_tuples) 。 dict 类可以传递一个元组列表并返回一个新字典。 我们使用 dict 类将元组列表转换为字典。 请注意 ,此方法仅在您的元组每个包含 2 个元素(一个键和一个值)时才有效。 或者,我们可以使用 字典推导 。

    2023年04月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包