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

yizhihongxing

可以使用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日

相关文章

  • 解决python2 绘图title,xlabel,ylabel出现中文乱码的问题

    当 Python2 绘图时,如果包含中文,通常会遇到标题、x轴标签、y轴标签出现乱码的问题,这是因为 Python2 默认不支持中文字符集。要解决此问题,我们需要做如下操作: 步骤一:安装中文字体库 首先,我们需要安装用于支持中文字符集的字体库。在 Ubuntu/Debian 系统下,可以通过以下命令安装: sudo apt-get install -y f…

    python 2023年5月18日
    00
  • python 把列表转化为字符串的方法

    以下是“Python把列表转化为字符串的方法”的完整攻略。 1. 列表转化为字符串的概述 在Python中,列表(list)是一种常的数据类型,它允许我们储存多个值。有时候我们需要将列表转化为字符串,以便于输出或者储存。本攻略将介绍Python中将列表转化为字符串的方法。 2. 列表转化为字符串的方法 Python中将列表转化为字符串的方法有多种,下面将介绍…

    python 2023年5月13日
    00
  • python匹配两个短语之间的字符实例

    以下是详细讲解“Python匹配两个短语之间的字符实例”的完整攻略,包括正则表达式的介绍、Python中re模块的使用、示例说明和注意事项。 正则表达式的介绍 正则表达式是一种用于匹配字符串的工具,它可以用来检查一个字符串是否符合某种模式。正则表达式通常由一些特殊字符和普通字符组成,用于描述字符串的特征。 Python中re模块的使用 在Python中可以使…

    python 2023年5月14日
    00
  • Python中的随机函数random详解

    Python中的随机函数random详解 在Python中,random是一个内置库,它提供了各种各样的随机数生成函数。本篇攻略将介绍Python中的随机函数random及其用法。 random库的导入 random库是Python的标准库之一,无需安装便可使用。使用时只需要导入random即可。 import random 生成随机整数 在Python中,…

    python 2023年6月3日
    00
  • python2和python3在处理字符串上的区别详解

    以下是关于 Python 2 和 Python 3 在处理字符串上的区别的完整攻略: 问题描述 Python 2 和 Python 3 在处理字符串上有很大区别。在 Python 2 中,字符串默认为 ASCII 编码,而 Python 3 中,字符串默认为 Unicode 编码。这个问题可能会导致在 Python 2 和 Python 3 中处理字符串时出…

    python 2023年5月13日
    00
  • OpenCV-Python实现轮廓检测实例分析

    下面我将详细讲解“OpenCV-Python实现轮廓检测实例分析”的完整攻略。 一、简介 在图像处理中,轮廓是一组表示物体边界的点。在OpenCV中,轮廓可以使用findContours函数来获取。本文就是通过OpenCV-Python实现轮廓检测实例分析。 二、轮廓获取 要获取图像中的轮廓,可以通过以下步骤实现: 二值化图像。可以使用阈值函数或Canny边…

    python 2023年5月18日
    00
  • Python文件操作实战案例之用户登录

    当然,我可以为您提供“Python文件操作实战案例之用户登录”的完整攻略,过程中包含两条示例说明。 Python文件实战案例之用户登录 在Python中,我们使用文件操作来实现用户登录的功能。本文将详细介绍Python文件操作实战案例之用户登录的完整攻略,包括文件读写、加密解密等操作。 1. 创建用户文件 首先,我们创建一个用户文件,用于存储用户的账号和密码…

    python 2023年5月14日
    00
  • Python tkinter 树形列表控件(Treeview)的使用方法

    Pythontkinter树形列表控件(Treeview)是一种常用的GUI控件,它可以展示一个层级结构的数据,常用于显示文件夹内的文件列表、树形目录表等。下面是Pythontkinter树形列表控件的详细使用方法: 创建Treeview控件 在使用Treeview控件前,我们需要先导入tkinter模块和ttk模块,并创建一个主窗口。然后,我们可以使用tt…

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