iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python解析式与生成器的介绍
  • 217
分享到

Python解析式与生成器的介绍

2023-06-02 08:06:10 217人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python解析式与生成器的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python解析式与生成器的介绍”吧!1.列表解析式列表解析式是将数据全部存储在内存中一并返回;#

本篇内容主要讲解“python解析式与生成器的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python解析式与生成器的介绍”吧!

1.列表解析式
  • 列表解析式是将数据全部存储在内存中一并返回;

# 将lst1的元素+100,导入到lst2lst1 = list(range(10))lst2 = []for item in lst1:    lst2.append(item+100)print(lst2)   #输出:[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]#使用列表解析式解析上面例子new_lst1 = [item + 100 for item in lst1]print(new_lst1 )  #输出:[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
  • 列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中;

  • 使用列表解析式,编译器会优化,不会因为简写而影响效率,反而优化提升效率,减少代码量,可读性强,工作量降低,减少出错;

  • 带条件判断的列表解析式;

#判断item满足被2整除,被3整除,list2和list3的写法都是一样的list1 = list(range(100))list2 = [item + 100 for item in list1 if item %2 == 0 and item %3 ==0]print(list2)  #输出:[100, 106, 112, 118, 124, 130, 136, 142, 148, 154, 160, 166, 172, 178, 184, 190, 196]list3 = [item + 100 for item in list1 if item % 2 == 0 if item % 3 == 0]print(list3)  #输出:[100, 106, 112, 118, 124, 130, 136, 142, 148, 154, 160, 166, 172, 178, 184, 190, 196]
  • 带循环的列表解析式;

lst = []for i in range(2):    for j in range(2):        lst.append((i, j))print(lst)  #输出:[(0, 0), (0, 1), (1, 0), (1, 1)]#将上述代码解析lst = [(i, j) for i in range(2) for j in range(2)]print(lst)  #输出:[(0, 0), (0, 1), (1, 0), (1, 1)]
  • 带循环和条件判断的列表解析式;

lst = [(i,j) for i in range(10) if i>2 for j in range(10,15) if j>13]print(lst)  #输出:[(3, 14), (4, 14), (5, 14), (6, 14), (7, 14), (8, 14), (9, 14)]
2.集合解析式
set1 = {(x,x+1) for x in range(10)}print(set1)#输出:{(0, 1), (1, 2), (7, 8), (6, 7), (4, 5), (5, 6), (8, 9), (9, 10), (2, 3), (3, 4)}
  • 集合解析式和列表解析式用法一样,只是集合解析式使用的是{}花括号;

3.字典解析式
# 字典解析式dict1 = {'{}'.fORMat(x):x for x in range(10)}print(dict1)   #输出:{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}# 输出三个元素,因为会被key会被覆盖dict2 = {x:y for x in range(3) for y in range(3)}print(dict2)  #输出:{0: 2, 1: 2, 2: 2}# 上式等价于dict3 = {}for x in range(3):    for y in range(3):        dict3[x] = yprint(dict3)   #输出:{0: 2, 1: 2, 2: 2}
  • 字典解析式也是使用{}花括号括起来的;

  • 因为字典有key-value键值对,所以使用字典解析式时key会自动去重;

4.什么是生成器
g = (item for item in range(10))print(g)  #输出:<generator object <genexpr> at 0x0095BBF0>print(next(g))  #输出:0print(next(g))  #输出:1....
  • 生成器表达式:返回一个对象,这个对象只有在需要的时候才产生结果;

  • 生成器的特点是按需计算,惰性求值,最大可能的节约内存空间;

  • 生成器是是单迭代器对象,一次只能产生一个值,且每个值只能取一遍,超过次数会报错;

  • 生成器和迭代器的相同之处在于都可以通过for循环取值,因此都是可迭代对象;

5.生成器操作
g = (item for item in range(10))print(g)  #输出:<generator object <genexpr> at 0x0095BBF0>value1 = next(g)print(value1)  #输出:0value2 = next(g)print(value2)  #输出:1print('*'*100) for item in g:    print(item)  #输出:2,3,4,5,6,7,8,9
  • 通过next获取值:如果取值的次数超过生成器对象值的长度,则会报错;

  • 通过for循环取值:如果生成器对象没有值的时候,for循环会通知迭代,所以不会报错;

到此,相信大家对“Python解析式与生成器的介绍”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python解析式与生成器的介绍

本文链接: https://www.lsjlt.com/news/229504.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python解析式与生成器的介绍
    本篇内容主要讲解“Python解析式与生成器的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python解析式与生成器的介绍”吧!1.列表解析式列表解析式是将数据全部存储在内存中一并返回;#...
    99+
    2023-06-02
  • token的介绍和用python 生成t
     基本概念 Token 的中文意思是“令牌”。主要用来身份验证。 Facebook,Twitter,Google+,Github 等大型网站都在使用。比起传统的身份验证方法,Token 有扩展性强,安全性高的特点,非常适...
    99+
    2023-01-31
    token python
  • go语言分布式id生成器及分布式锁介绍
    目录分布式 id 生成器worker_id 如何分配开源示例:标准雪花算法分布式锁进程内加锁尝试加锁 tryLock基于 Redis 的 setnx 分布式锁基于 ZooKeeper...
    99+
    2023-05-14
    go 分布式id生成器 锁 go 分布式锁
  • python列表生成器与生成器
    列表生成器是python内置的非常简单却非常强大的。生成一个列表[1,2,3,4]可以用list(range(1,5))列表生成器的应用如果上面的公式加上判断,就可以筛选出想要的结果,比如仅需要偶数的平方使用多层循环生成器生成器与列表生成器...
    99+
    2023-01-31
    生成器 列表 python
  • 解析java.library.path和LD_LIBRARY_PATH的介绍与区别
    背景 近期要将算法部署到一个机群的虚拟主机(Debian 9.1 gcc 6.3.0)上,采用的是Java + JNI + shared library的方式来完成底层算法能力的部署...
    99+
    2024-04-02
  • GoLang与Java各自生成grpc代码流程介绍
    目录1.背景2.go生成grpc代码2.1 安装2.2 安装对应插件3.java生成grpc代码3.1 idea安装protobuf插件3.2 创建maven项目3.3 生成grpc...
    99+
    2023-03-15
    Go生成grpc Java生成grpc
  • Python中关于集合的介绍与常规操作解析
    目录1.集合的介绍2.访问集合的元素3.集合的添加4.集合的修改5.集合的删除1.使用remove方法2.使用pop方法3.使用discard方法6.集合的交集和并集1.交集2.并集...
    99+
    2024-04-02
  • PHP无状态的介绍与原理解析
    PHP无状态的介绍与原理解析 在Web开发中,无状态性是一个重要概念,它指的是服务器在处理客户端请求时不会保存任何客户端的状态信息,每个请求都是独立的,并不依赖于之前的请求。PHP作为...
    99+
    2024-03-06
    原理 php 状态
  • Python生成器/生成器函数/推导式/
    1. 生成器   生成器的本质就是迭代器   在python中有三种⽅方式来获取⽣生成器:     1. 通过生成器函数     2. 通过各种推导式来实现⽣成器     3. 通过数据的转换也可以获取生成...
    99+
    2023-01-31
    生成器 函数 Python
  • Python | Python的自我介绍(前世今生)
    本文概要 本篇文章主要介绍Python这门语言的前世今生,适合刚入门的小白或者想了解Python历史的同学,文中描述很详细,具有一定的学习价值,感兴趣的小伙伴快来一起学习吧。 个人简介 ☀️大家好...
    99+
    2023-09-13
    python 开发语言
  • etcd与分布式锁的介绍
    本篇内容主要讲解“etcd与分布式锁的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“etcd与分布式锁的介绍”吧!1. 实现分布式锁的组件们在分布式系统中,...
    99+
    2024-04-02
  • 【Python】pyinstaller的介绍与使用
    一、 概述 1、 简介 pyinstaller是一个第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可...
    99+
    2023-09-01
    python
  • 怎么在python中解析生成器
    这篇文章给大家介绍怎么在python中解析生成器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面...
    99+
    2023-06-14
  • PowerShell与Python的异同介绍
    目录1、Python定义2、Python用途4、PowerShell用途5、PowerShell和Python对比5.1 共同点5.2 不同点6、总结1、Pyth...
    99+
    2023-05-20
    PowerShell和Python区别 PowerShell Python
  • Python中切片迭代列表生成式及生成器的示例分析
    小编给大家分享一下Python中切片迭代列表生成式及生成器的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在Python中,代码越少越好、越简单越好。基于这一思想,需要掌握Python中非常有用的高级特性,1行代码...
    99+
    2023-06-25
  • Vue生态的新成员Pinia的详细介绍
    目录安装和配置Store核心StateGettersActionsVue Devtools最后结论参考文献Pinia是Vue应用程序的状态管理方案,是Vuex核心团队成员开发。感觉更...
    99+
    2024-04-02
  • python中列表推导式与生成器表达式对比详解
    目录概述列表推导式生成器表达式使用场景选择参考总结概述 Python中的列表推倒式(List Comprehension) 和 生成器表达式(Generator Expression...
    99+
    2023-01-07
    python 列表推导式 python 生成器表达式
  • python的列表生成式,生成器和generator对象你了解吗
    目录列表生成式列表表达式初始化 dict 或 setgenerator对象生成generator对象总结列表生成式 可以使用列表生成式生成 列表元素。 例如: 列表还支持 if &...
    99+
    2024-04-02
  • Python 推导式、生成器与切片问题解决思路
    推导式、生成器与切片 一、实验要求 1.理解并掌握序列中的常用操作。2.理解并掌握推导式、切片等用法并能解决实际问题。 二、实验内容 1,编写程序,测试字符的出现频率。 #u...
    99+
    2024-04-02
  • Python迭代器与生成器
    生成器仅仅拥有生成某种东西的能力,如果不用__next__方法是获取不到值得。创建一个生成器函数>>> def scq(): ...    print("11") # 当函数代码块中遇到yield关键字的时候,这个函数就是...
    99+
    2023-01-31
    生成器 迭代 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作