列表生成式、生成器表达式、模块导入
一:列表生成式和生成器表达式
1.1.用传统的方法创建一个列表
l=[] for i in range(100):l.append('egg%s' %i)print(l)
用传统的方法创建列表需要至少三行的代码,采用列表生成式:
l=['egg%s' %i for i in range(100)]
一行代码就已经搞定了列表的创建,大大简化了我们写代码的工作量,而且还可以在生成式里面添加一个判断。
l=['egg%s' %i for i in range(1000) if i > 10]
这样,列表生成的就是大于10的数字了。
1.2.生成器表达式
生成器的优势在于可以取得很多的数字,但是他并不像列表那样把所有的字符保存下来,提取时如果列表内含有的元素过多的话会爆掉内存。于是生成器就被需要了,把列表生成式的中括号换成小括号,得到的就是一个生成器,生成器又是迭代器,使用__next__方法一个个的取值,对内存占用极小。
l=('egg%s' %i for i in range(1000) if i > 10)#生成器表达式 print(next(l))#取值 print(next(l)) print(next(l))
二:模块
2.1.什么是模块?
模块就是一种系统功能的集合体,在python中一个.py文件就是一个模块,如modul.py文件,modul就是文件名。
2.2:使用模块
导入模块方法:
1:import 模块名:调用模块内的方法必须加上前缀,调用不会出错。
2:from...import...:调用模块内的方法不用加上前缀,但是有可能会和执行文件中的名字起冲突。
首次导入模块发生的三件事:
1、创建一个模块的名称空间。
2、执行模块对应文件,将产生的名字存放于1中的名称空间。
3、在当前执行文件中拿到一个模块名,该模块名指向1的名称空间。
注意:1、首次导入之后重复导入,后续的导入会直接引用第一次的导入结果,不会再次执行文件内容。
2、模块中功能的执行始终以模块自己的名称空间为准。
为模块起别名
模块的名称一般来说是描述性的,有的时候会很长,如果每次调用都要在前面加上前缀的话,非常不方便,这个时候我们就可以给模块在导入时另外取一个简洁的名字。另外一种场景则是导入多个模块,其执行内容一致,但是需要判断条件来执行,这时就可以把两个导入的模块另外取名,然后判断,做具体调用运算。
engine=input('>>: ').strip() if engine == 'mysql':import mysql as db elif engine == 'oracle':import oracle as dbdb.parse()if__name__ =="__main__" #如果文件是直接被执行 # 在文件被直接执行的情况下等于__main__ # 在文件被导入的情况下,等于文件名 # if __name__ == "__main__": # print("文件被当做脚本执行了") # else: # print("文件被导入啦")
常常可以在模块文件下看到这一行代码,这个代码的意思是,如果文件是直接被执行,那么会调用定义的函数如果是被当做模块导入的话,只会获取定义的名字,不会执行函数
三:模块中名字的查找顺序
内存中已经加载的名字》内置的名字》sys.path路径中包含的模块。
强调:sys.path的第一个路径是当前执行文件所在的文件夹
转载于:https://www.cnblogs.com/li1992/p/8709790.html
列表生成式、生成器表达式、模块导入相关推荐
- 列表生成式,生成器表达式,模块的使用
三元表达式 无论条件成立与否都要返回一个值, 用于简化仅有一个判断的函数(或代码块)递归 递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的 二分查找法匿名函数 仅能在定义时使用 ...
- python列表生成器语法_Python 列表生成式\生成器
Python 列表生成式+生成器 一.列表生成式 1.什么是列表生成器 一种可以便捷地生成列表的表达式,有时候可以替换list.append(变量) 2.需求. 如何将列表中的每个数据都加1 列表:d ...
- 4 三元表达式 列表解析 生成器表达式
三元表达式 #!/usr/bin/env python3 # _*_ coding:utf-8 _*_ # @File : 三元表达式 # @Version : 1.0'''三元表达式能实现简单的 i ...
- 三元表达式列表解析生成器表达式
三元表达式 列表解析 生成器表达式 三元表达式 在作简单的判断时,三元表达式能简化代码: def max(x, y):if x > y:return xelse:return y # 这个函数可 ...
- python从random生成列表_Python 学习DAY 17 列表生成式,生成器,迭代器,time模块,random模块...
********************************************列表生成式****************** a=[x for x in range(10)] [0, ...
- Python - 列表解析式/生成器表达式
列表解析式: [expr for iter_var in iterable if cond_expr] 生成器表达式: (expr for iter_var in iterable if cond_e ...
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...
- python 列表生成式_深度好文:Python之列表生成式、生成器、可迭代对象与迭代器(一)...
作者:云游道士 原文:https://www.cnblogs.com/yyds/p/6281453.html 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterab ...
- python之生成器(~函数,列表推导式,生成器表达式)
一.生成器 概念:生成器的是实质就是迭代器 1.生成器的贴点和迭代器一样,取值方式也和迭代器一样. 2.生成器一般由生成器函数或者声称其表达式来创建,生成器其实就是手写的迭代器. 3.在python中 ...
- 生成器、生成器函数、推导式、生成器表达式
一.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...
最新文章
- 清华朱文武团队斩获NIPS 2018 AutoML挑战赛亚军,高校排名第一
- html5应用测试方法,详解html5的video标签测试应用
- Huffman(哈夫曼)编码--又称最佳编码(最有效的二进制编码)
- git 修改分支名字_大牛总结的 Git 使用技巧,写得太好了!
- .net core 2.1 mysql_ASP.NET Core 2.2 + MySQL + DB First
- [Diary]忧伤,止不住忧伤……
- C语言的本质(37)——makefile之隐含规则和模式规则
- 编写python程序、找出100_100+ Python挑战性编程练习(1)
- Oracle中sql相关的命令
- JDK8的下载,安装和配置
- 爬取豆瓣电影排行榜top 250
- WGS84经纬度坐标6度分带高斯投影正算
- 全国计算机软考中级哪个科目最简单,软考中级哪个科目比较容易考?
- 我的世界服务器修改配置文件,瞬间统一 配置文件config修改 教程
- 【pcl-ros操作】rostopic、rosmsg、rosbag常用命令
- 智能工厂体系,主要划分为哪五个层级?
- 使用示波器的正确姿势
- GRU门控循环单元读书笔记
- 【Java就业培训教材】——集合的学习
- 用“AI”给吴秀波测面相,究竟是真还是智商税?
热门文章
- 云原生:云计算时代命题之终极解决方案
- 操作系统服务:OS模块
- 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习
- numpy教程:基本输入输出和文件输入输出Input and output
- 技能大赛 计算机 融合 研究,技能大赛与高职计算机教学的融合研究.doc
- 新型消防机器人作文_说一说消防机器人
- python打包后怎么安装_别再问我怎么Python打包成exe了!
- ElasticSearch中压缩算法LZ4的使用
- 优学院java架构52破解_2021年优学院Java程序设计(山西工程职业学院)课后习题答案...
- 力扣-543. 二叉树的直径