一:列表生成式和生成器表达式

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

列表生成式、生成器表达式、模块导入相关推荐

  1. 列表生成式,生成器表达式,模块的使用

    三元表达式 无论条件成立与否都要返回一个值, 用于简化仅有一个判断的函数(或代码块)递归 递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的 二分查找法匿名函数 仅能在定义时使用 ...

  2. python列表生成器语法_Python 列表生成式\生成器

    Python 列表生成式+生成器 一.列表生成式 1.什么是列表生成器 一种可以便捷地生成列表的表达式,有时候可以替换list.append(变量) 2.需求. 如何将列表中的每个数据都加1 列表:d ...

  3. 4 三元表达式 列表解析 生成器表达式

    三元表达式 #!/usr/bin/env python3 # _*_ coding:utf-8 _*_ # @File : 三元表达式 # @Version : 1.0'''三元表达式能实现简单的 i ...

  4. 三元表达式列表解析生成器表达式

    三元表达式 列表解析 生成器表达式 三元表达式 在作简单的判断时,三元表达式能简化代码: def max(x, y):if x > y:return xelse:return y # 这个函数可 ...

  5. python从random生成列表_Python 学习DAY 17 列表生成式,生成器,迭代器,time模块,random模块...

    ********************************************列表生成式****************** a=[x for x in range(10)]     [0, ...

  6. Python - 列表解析式/生成器表达式

    列表解析式: [expr for iter_var in iterable if cond_expr] 生成器表达式: (expr for iter_var in iterable if cond_e ...

  7. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

    1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...

  8. python 列表生成式_深度好文:Python之列表生成式、生成器、可迭代对象与迭代器(一)...

    作者:云游道士 原文:https://www.cnblogs.com/yyds/p/6281453.html 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterab ...

  9. python之生成器(~函数,列表推导式,生成器表达式)

    一.生成器 概念:生成器的是实质就是迭代器 1.生成器的贴点和迭代器一样,取值方式也和迭代器一样. 2.生成器一般由生成器函数或者声称其表达式来创建,生成器其实就是手写的迭代器. 3.在python中 ...

  10. 生成器、生成器函数、推导式、生成器表达式

    一.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...

最新文章

  1. 清华朱文武团队斩获NIPS 2018 AutoML挑战赛亚军,高校排名第一
  2. html5应用测试方法,详解html5的video标签测试应用
  3. Huffman(哈夫曼)编码--又称最佳编码(最有效的二进制编码)
  4. git 修改分支名字_大牛总结的 Git 使用技巧,写得太好了!
  5. .net core 2.1 mysql_ASP.NET Core 2.2 + MySQL + DB First
  6. [Diary]忧伤,止不住忧伤……
  7. C语言的本质(37)——makefile之隐含规则和模式规则
  8. 编写python程序、找出100_100+ Python挑战性编程练习(1)
  9. Oracle中sql相关的命令
  10. JDK8的下载,安装和配置
  11. 爬取豆瓣电影排行榜top 250
  12. WGS84经纬度坐标6度分带高斯投影正算
  13. 全国计算机软考中级哪个科目最简单,软考中级哪个科目比较容易考?
  14. 我的世界服务器修改配置文件,瞬间统一 配置文件config修改 教程
  15. 【pcl-ros操作】rostopic、rosmsg、rosbag常用命令
  16. 智能工厂体系,主要划分为哪五个层级?
  17. 使用示波器的正确姿势
  18. GRU门控循环单元读书笔记
  19. 【Java就业培训教材】——集合的学习
  20. 用“AI”给吴秀波测面相,究竟是真还是智商税?

热门文章

  1. 云原生:云计算时代命题之终极解决方案
  2. 操作系统服务:OS模块
  3. 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习
  4. numpy教程:基本输入输出和文件输入输出Input and output
  5. 技能大赛 计算机 融合 研究,技能大赛与高职计算机教学的融合研究.doc
  6. 新型消防机器人作文_说一说消防机器人
  7. python打包后怎么安装_别再问我怎么Python打包成exe了!
  8. ElasticSearch中压缩算法LZ4的使用
  9. 优学院java架构52破解_2021年优学院Java程序设计(山西工程职业学院)课后习题答案...
  10. 力扣-543. 二叉树的直径