Python-生成式和生成器(通俗易懂)

2023-05-16

在·# 1.生成式

1)列表生成式

在这里插入图片描述
生成100个随机验证码:
在这里插入图片描述
通过列表生成式简化:

import random
import string
codes = [''.join(random.sample(string.ascii_letters,4)) for i in range(100)]
print(codes)

执行结果如下:
在这里插入图片描述
找出1-100之间可以被3整除的数:

nums = []
for num in range(1,101):
    if num % 3 == 0:
        nums.append(num)
print(nums)
## 通过列表生成式优化:
nums = [num for num in range(1,101) if num % 3 == 0]
print(nums)

2)集合生成式

和列表生成式类似
可以对代码进行优化

Set = { i**2 for i in range(100)}
print(Set)

结果如下:
在这里插入图片描述

3)字典生成式

## 冒号前的是key值,后面是value值
Dict = {i:i**2 for i in range(10)}
print(Dict)

执行结果如下:
在这里插入图片描述

2. 生成器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1)第一种实现方法

#生成器实现的第一种方法:将生成式改写成生成器
nums = (i**2 for i in range(1000))
for num in nums:
    print(num)

2)第二种实现的方法

# 生成器实现的第二种方法:yield关键字
# return:函数遇到return就返回,return后面的代码不会执行
# yield:遇到yield停止执行代码,当再次调用next方法时,会从上次停止的地方继续执行,遇到yield停止,依此类推。
nums = (i**2 for i in range(1000))
def login():
    print('step 1')
    yield 1
    print('step 2')
    yield 2
    print('step 3')
    yield 3 
# 如果函数里有yield关键字,函数的返回值就是一个生成器。
g = login()
print(next(g))
print(next(g))
print(next(g))

执行结果如下:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python-生成式和生成器(通俗易懂) 的相关文章

  • Lz4压缩算法学习

    一 简介 Lz4压缩算法是由Yann Collet在2011年设计实现的 xff0c lz4属于lz77系列的压缩算法 lz77严格意义上来说不是一种算法 xff0c 而是一种编码理论 xff0c 它只定义了原理 xff0c 并没有定义如何
  • 03. 面向对象分析过程

    03 面向对象分析 1 面向对象 xff08 1 xff09 OOA Object oriented Analysis 面向对象分析 事物的分类 命名 描述 xff08 2 xff09 OOD Object oriented Design
  • 修改python pip安装第三方包的安装路径

    由于某种原因将pip的安装路径设置到了C盘用户目录下面 xff0c 导致每次清理垃圾时就顺带把安装的第三方包给清理掉了 xff0c 因此需要更改pip第三方包的安装路径 首先找到python的安装路径 where python 在pytho
  • 树莓派3b终端命令行播放器omxplayer,通过HDMI屏幕播放视频

    omxplayer是一款可以使用命令行控制的播放器 xff0c 图像通过 HDMI显示到屏幕上 树莓派可以运行omxplayer xff0c 在终端使用命令行播放视频 1 安装omxplayer sudo apt get install o
  • stm32单片机OLED取字模软件使用 PCtoLCD2002

    PCtoLCD2002 xff0c 适用单色屏取字模制作字库 xff0c 进行位图转换 xff0c 还可自行描点 xff0c 使用非常简单方便 1 取字模 xff0c 制作字库 打开PCtoLCD2002 单片机OLED或者其他单色屏 xf
  • Linux 下编译并安装配置 Qt 全过程

    1 获得源代码 src 官网下载地址 xff1a ftp ftp qt nokia com qt source 2009 年 10 月 1 日发布的 qt x11 opensource src 4 5 3 tar gz xff0c 大小 1
  • CentOS8使用gmssl搭建demoCA及配置OCSP服务

    本文档以CentOS8 43 GmSSL2 5 4版本为例 1 GmSSL搭建CA 1 1 安装GmSSL 我们知道 xff0c Linux下默认只有openssl的发行版 xff0c 并没有默认安装GmSSL xff0c 所以需要手动下载
  • 二、Linux SSH远程连接Windows

    1 关闭防火墙 2 允许远程访问 3 安装SSH服务器并启动 4 打开Linux查看防火墙状态 xff0c 未关闭则用system stop firwall暂时关闭防火墙 5 测试网络连通性 xff0c 不通则检查网卡 xff0c 保证网络
  • Linux qt6安装

    首先qt目前正常安装的话 xff0c 需要先在官网注册一个账号 xff0c 邮箱激活下 xff0c 记住账号密码就好 xff0c 这个是目前qt安装必须的 目前安装的方式有两种 xff0c 推荐大家使用在线联网安装 xff08 官网已不提供
  • Shell系统学习之如何执行Shell程序

    系列文章目录 Shell系统学习之什么是Shell Shell系统学习之创建一个Shell程序 Shell系统学习之向Shell脚本传递参数 Shell系统学习之如何执行Shell程序 Shell系统学习之Shell变量和引用 Shell系
  • 个人Obsidian同步和分享方案:AList+rclone+PicHoro

    Obsidian同步方案 最近尝试了下Obsidian这款笔记工具 xff0c 整体体验还是不错的 xff0c 但obsidian的同步确实是个大问题 我的主要需求是windows编辑加安卓端的查看 xff0c 偶尔可能需要编辑一下 xff
  • MySQL之limit用法

    SELECT FROM table LIMIT offset rows rows OFFSET offset 意思就是说 xff1a 可以这样子 xff1a SELECT FROM table LIMIT offset rows 或者这样子
  • 安卓定时器每5分钟执行一次方法

    import android os Handler 定时任务实现 private Handler handler 61 new Handler Runnable runnable 61 new Runnable 64 Override pu
  • 文件操作汇总

    为方便复习 xff0c 汇总一下以前相关笔记的索引 linux操作总结汇总 xff1a 进程内存通信 C语言 详解C中的系统调用open close read write C中文件操作复习 最近有关linux文件操作的总结
  • Anaconda安装及基本使用

    1 linux安装 conda可以创建多种语言环境 xff0c 支持的语言有 xff0c 可以创建多种复杂环境 xff0c 如果只需要python环境 xff0c pycharm自带的应该可以满足需求 Python R Ruby Lua S
  • Ubuntu18.04安装过程中界面卡死,完美解决办法

    让我们开始吧 在网上搜了资料 xff0c 总结如下 xff1a 1 u盘启动过程中 xff0c 会出现选择界面 xff0c try ubuntu install ubuntu等 xff0c 此时点 e 键 xff0c 会出现一个黑框 xff
  • 打包成jar文件后运行出现Invalid or corrupt jarfile 解决

    Invalid or corrupt jarfile home WebService jar Failed to load Main Class manifest attribute from home WebService jar 打ja
  • TX2(ubuntu 18.04)更换清华镜像源

    注意 xff0c 该版本的TX2有两个特点 xff1a Arm架构和ubuntu18 04 一 备份 sudo cp etc apt sources list etc apt sources list bak 先备份原文件sources l
  • Ubuntu22.04+Nvidia RTX 3060 显卡驱动安装

    新装 Ubuntu22 04 LTS xff0c 电脑配的是Nvidia RTX 3060 xff0c 所以需要安装显卡驱动 xff0c 未安装前显卡显示如下 xff1a 1 设置阿里源 在软件和更新在第一栏Ubuntu 软件页面中 xff
  • 基于深度学习算法实现视频人脸自动打码

    前言 1 在当下的环境上 xff0c 短视频已是生活的常态 xff0c 但这是很容易就侵犯别人肖像权 xff0c 好多视频都会在后期给不相关的人打上码 xff0c 这里是基于yolov5的人脸检测实现人脸自动打码功能 2 开发环境是win1

随机推荐

  • 树莓派4B设置双网卡静态IP、网卡优先级、查看系统多少位

    1 设置静态IP 下面两种方法都试过 xff0c 可以永久保存 方法2更官方一些 但是 xff0c 方法 1 右上角可视化设置IP不知道为什么无法使用 xff0c 设置好后重启 xff0c 再ping局域网设备 xff0c 总是出现提示 x
  • 基于ZLG/BOOT的linux2.6内核移植(s3c2410)

    基于ZLG BOOT的linux2 6内核移植 s3c2410 ZLG BOOT是广州致远arm实验箱自带的bootloader 我用的这款实验箱自带的linux内核还是2 4版本的 有点儿老了 所 以想移植个2 6上去 由于bootlod
  • Linux如何挂载Windows的NTFS分区?

    使用的是RedHat Linux xff0c 其暂时还不能支持NTFS 分区的直接挂载 xff0c 目前有两种方法可以解决这个问题 一是重新编写Linux 内核 xff0c 二是安装一个功能RPM补丁 本文讨论的是第二种方法 第一步 xff
  • 基于Video4Linux 的USB摄像头图像采集实现

    J W Hu 的 基于Video4Linux 的USB摄像头图像采集实现 Linux本身自带了采用ov511芯片的摄像头 xff0c 而市场上应用最广泛的是采用中 芯微公司生产的zc301芯片的摄像头 xff0c 下面我将针对这两大系列的摄
  • SpringBoot + MyBatisPlus 异常 The SQL execution time is too large, please optimize !

    网上看了很多例子 xff0c 五花八门 xff0c 我是这样解决的 xff0c 配置application yml 把红色那行代码注释掉 xff0c 成功 xff0c 没有出现问题 spring datasource 数据源的基本配置 us
  • ARM-LINUX调试中segmentation fault 的解决参考

    可恶的segmentation fault问题解决探索 xff08 转载 xff09 http oss lzu edu cn blog article php tid 700 html 背景 最近一段时间在linux下用C做一些学习和开发
  • VC 多线程编程

    一 问题的提出 编写一个耗时的单线程程序 xff1a 新建一个基于对话框的应用程序SingleThread xff0c 在主对话框IDD SINGLETHREAD DIALOG添加一个按钮 xff0c ID为IDC SLEEP SIX SE
  • Linux C 函数参考(日期时间)

    1 1 概述 世界标准时间 xff08 Coordinated Universal Time xff0c UTC xff09 xff0c 也就是大家所熟知的格林威治标准时间 xff08 Greenwich Mean Time xff0c G
  • IplImage与char型转换

    对OpenCV稍有了解的同学都知道里边用于存储图像数据的IplImage xff0c 其中有两个属性非常值得关注 xff0c 稍不留神就会导致错误 xff08 后附错例一则 xff09 xff1a 一是width属性 xff1b 二是wid
  • 如何卸载阿里巴巴PC流氓软件

    今天真的是恶心到我了 我有一个移动硬盘插在PC上 xff0c 用了一段时间后本打算简单的退出这个硬盘 xff0c 想安全地拔下 没想到360软件提示有一个进程在占用这个移动硬盘 xff0c 不能安全地弹出 靠 xff0c 我想着什么软件这么
  • wsl1 的Ubuntu20.04升级到wsl2 的Ubuntu20.04失败,报错系统找不到指定的文件

    在wsl下看到Ubuntu 20 0是正常运行的 xff0c 但是升级为wsl2时无法找到对应的文件 PS xff1a 之前将Ubuntu迁移到D盘后删掉了 xff0c 重新下了一个Unbuntu xff0c 可能是导致无法升级wsl2的原
  • 使用U盘重装Windows10系统详细步骤及配图【官方纯净版】

    文章目录 1 制作启动盘1 1准备U盘及一台电脑1 2下载win10安装包 2 安装操作系统2 1插入系统安装盘2 2设置启动盘为第一启动项2 3开始安装操作系统 3 安装成功后进入图形界面3 1启动问题3 2驱动问题3 3调出 34 控制
  • Android实现图片转ascii码字符图的一些尝试

    z2IN png 抖音上炫代码的不少 xff0c 有些真的让人叹为观止 xff0c 作为一个androider xff0c 当我看到下面这段舞蹈的时候 xff0c 终于忍不住了 xff0c 想要通过android实现一样的效果 jileji
  • 浅谈知识追踪(BKT、IRT、DKT)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 知识追踪是什么 xff1f 二 具体内容1 基于贝叶斯的知识追踪 xff08 BKT xff09 项目反应理论 xff0
  • 走进C++11(十四)变长参数模板

    解释 C 43 43 03只有固定模板参数 C 43 43 11 加入新的表示法 xff0c 允许任意个数 任意类别的模板参数 xff0c 不必在定义时将参数的个数固定 变长模板 变长参数是依靠C 43 43 11新引入的参数包的机制实现的
  • sql server 获取当前日期前12个月的月份sql 语句

    sql server 获取当前日期前12个月的月份sql 语句 select convert varchar 7 dateadd mm number dateadd month 11 getdate 120 as dt from maste
  • wxPython禁用窗口最大化按钮

    本文提供了两种方法禁用窗体最大化按钮 方法一 通过SetWindowStyle函数单独设置窗体式样 代码 xff1a self SetWindowStyle wx DEFAULT FRAME STYLE wx MAXIMIZE BOX 方法
  • C++ std::thread使用

    c 43 43 11 之后有了标准的线程库 xff1a std thread 通过c 43 43 11中的线程库创建线程 xff0c 极为方便 xff0c 且跨平台 xff0c 是语言层面的 之前跨平台的多线程开发中 xff0c 多使用bo
  • iOS 不规则的UIImageView 实现

    那如何去实现 xff1f 通常图片都是矩形的 xff0c 如果想在客户端去实现不规则的头像 xff0c 需要自己去实现 1 使用layer去实现 见http blog csdn net johnzhjfly article details
  • Python-生成式和生成器(通俗易懂)

    在 1 生成式 1 xff09 列表生成式 生成100个随机验证码 xff1a 通过列表生成式简化 xff1a span class token keyword import span random span class token key