python中从for循环延申到推导式的具体使用

可以使用for循环通过遍历list或者其他可迭代对象进行迭代操作,但是循环语法有时不够简洁,可以使用Python的推导式实现同样的操作。

Python中的推导式是一种简洁、快速、简单的利用迭代器快速构建一个列表、字典或集合的方法,Python中有列表推导式,字典推导式和集合推导式三种。

列表推导式

列表推导式使用简单,使用一行代码就能快速构建一个列表:

new_list = [表达式 for 变量 in 可迭代对象 if 条件]
  • 表达式:循环可能执行的操作;
  • 变量:在循环过程中用来实时迭代对象的某个元素;
  • 可迭代对象:列表、元组、集合、字符串或其他可迭代的对象;
  • if条件:一个或多个判断语句,可留空。

示例一:将数字列表中的每个数平方并存储到新列表中

origin_list = [1, 2, 3, 4, 5]
new_list = [x ** 2 for x in origin_list]
print(new_list)  # [1, 4, 9, 16, 25]

示例二:筛选出数字列表中大于3的数并存储到新列表中

origin_list = [1, 2, 3, 4, 5]
new_list = [x for x in origin_list if x > 3]
print(new_list)  # [4, 5]

字典推导式

除了使用列表推导式,还可以使用字典推导式快速构建一个字典,使用一行代码就能快速构建一个字典:

new_dict = {key: value for key, value in 可迭代对象 if 条件}
  • key:在迭代对象中的元素,用于键;
  • value:在迭代对象中的元素,用于值;
  • 可迭代对象:列表、元组、集合、字符串或其他可迭代的对象;
  • if条件:一个或多个判断语句,可留空。

示例三:将列表中的元素映射为字典的键值对

origin_list = [("name", "Tom"), ("age", 18), ("gender", "male")]
new_dict = dict(origin_list)
print(new_dict)  # {'name': 'Tom', 'age': 18, 'gender': 'male'}

示例四:将字典中的值与其对应的键进行交换

origin_dict = {"name": "Tom", "age": 18, "gender": "male"}
new_dict = {value: key for key, value in origin_dict.items()}
print(new_dict)  # {'Tom': 'name', 18: 'age', 'male': 'gender'}

集合推导式

使用集合推导式可以快速得到一个集合,与列表推导式和字典推导式相似,使用一行代码就能快速构建一个集合:

new_set = {元素 for 变量 in 可迭代对象 if 条件}
  • 元素:由可迭代对象变量指向的元素;
  • 变量:在循环过程中用来实时迭代对象的某个元素;
  • 可迭代对象:列表、元组、集合、字符串或其他可迭代的对象;
  • if条件:一个或多个判断语句,可留空。

示例五:将列表中的元素去重存储到一个集合中

origin_list = [1, 2, 3, 3, 4, 4, 5, 5]
new_set = {x for x in origin_list}
print(new_set)  # {1, 2, 3, 4, 5}

示例六:将一个字符串中的元素去重存储到一个集合中

origin_str = "hello, world"
new_set = {char for char in origin_str if char != " "}
print(new_set)  # {'w', 'e', 'h', 'r', 'l', 'd', 'o', ','}

以上就是从for循环延申到推导式的具体使用攻略,包含列表推导式、字典推导式和集合推导式三种推导式的详细说明以及示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中从for循环延申到推导式的具体使用 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python实现ping的方法

    下面是我详细讲解“Python实现Ping的方法”的完整攻略: 1. 介绍Ping Ping是一种网络工具,用于测试主机之间的连通性。它能够向指定的目的地址发送一个数据包(通常是ICMP报文),并等待该目的地址返回一条相应的数据包。通过比对发送的数据包和返回的响应包,可以判断目的主机是否可达以及网络是否畅通。 Ping命令通常以ping加上目标地址或域名的形…

    python 2023年5月19日
    00
  • python处理xml文件操作详解

    Python处理XML文件操作详解 介绍 XML(可扩展标记语言)是一种在各种应用程序之间传输数据的常用格式。Python作为一门流行的编程语言,提供了处理XML文件的多种方法。在本文中,我们将介绍Python处理XML文件的详细步骤和示例代码。 步骤 1. 导入必要的库 Python解析XML文件需要使用ElementTree库。需要导入该库,我们可以使用…

    python 2023年6月3日
    00
  • Python中的pathlib.Path为什么不继承str详解

    Python中的pathlib.Path为什么不继承str详解 pathlib是Python 3.4中引入的一个标准库,用于处理文件路径。Path是pathlib库中的一个类,用于表示文件路径。与os.path不同,Path类提供了一种面向对象的方式来处理文件路径。Path类的设计有一个特点,就是它没有继承str类。本文将详细讲解为什么Path类不继承str…

    python 2023年5月15日
    00
  • 用python做个代码版的小仙女蹦迪视频

    下面是用Python制作代码版小仙女蹦迪视频的详细攻略: 一、需要的工具和库 Python 3.x MoviePy 库 二、基本流程 导入需要用到的库 设置需要用到的变量 加载视频资源 处理视频 输出结果 三、具体实现 1. 导入需要用到的库 from moviepy.editor import * 2. 设置需要用到的变量 input_video_path…

    python 2023年6月5日
    00
  • Python之urlencode和urldecode案例讲解

    Python之urlencode和urldecode案例讲解 在Python中,urlencode和urldecode是用于URL编码和解码的函数。本文将详细讲解urlencode和urldecode的使用方法,包括URL编码、URL解码等操作。 URL编码 以下是一个使用urlencode函数进行URL编码的示例: import urllib.parse …

    python 2023年5月15日
    00
  • 如何使用Python进行PDF图片识别OCR

    当需要将PDF中的图片提取出来,并使用OCR技术对图片内容进行文字识别时,Python是一个很好的选择。下面是使用Python进行PDF图片识别OCR的详细攻略: 1. 安装依赖库 首先需要安装一些依赖库,包括PyPDF2, Pillow 和 pytesseract: pip install pypdf2 pillow pytesseract 其中,PyPD…

    python 2023年5月18日
    00
  • OpenCV中VideoCapture类的使用详解

    OpenCV中VideoCapture类的使用详解 VideoCapture类的概述 OpenCV是一个广泛用于计算机视觉的跨平台库,支持多种语言,包括C++,Python等。其中,VideoCapture是一个非常重要的类,主要用于从视频文件或摄像头获取视频帧。 VideoCapture类的创建 要使用VideoCapture类,需要使用opencv库,并…

    python 2023年6月2日
    00
  • python实习总结(yeild,async,azwait和协程)

    Python实习总结 本文将介绍在Python实习中所了解到的yield、async、await和协程的知识点以及如何使用它们。 yield和生成器 yield是一种特殊的关键字,它可以让函数暂停执行,并将函数的当前状态保持下来。yield常用于生成器中,生成器可以用来迭代一组数据,而不用事先生成整组数据,这样可以节省内存空间。以下是yield的示例代码: …

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部