python列表生成式,生成器表达式和模块基础
列表生成式
一个快速产生列表的表达式
new_list=[i for i in li],会从li依次取出所有值,然后装到新列表中
语法:[表达式 for in 遍历 if 条件]
#只提取大于30的数据到列表
new_list=[i for i in li if i >20]
生成器表达式
可以使用一种表达式来快速创建一个生成器
new_li=(i for i in li)
语法:(表达式 for i in li if 条件)
整体语法与列表生成式差不多
模块的使用
目前使用韩素湖来编写代码,虽然大幅度降低了代码冗余,并且组织结构清晰多了,但是随着项目功能的增加,如果还将代码全放在一个文件中,将出现下面的问题
1.维护性差
2函数太多,结构不清晰,可读性差
3.对于相同功能的函数,如果在不同文件中都要使用,就只能复制粘贴,又出现了重复代码
什么是模块:
模块就是一堆功能的集合体,以py文件的形式存在,简单的说就是具备一堆函数的py文件
模块的分类:
1.自定义模块(包含第三方模块)
2.内置模块,例如time,os(主要学怎么使用)
3.经过编译后的c或c++库,以DLL的形式存在
4.包(本质就是一个文件夹,其中包含了一堆模块)
import 用于导入一个模块
会立即执行模块中的代码
导入模块时,发生了什么
1.创建一个名称空间
2.开始执行模块中的代码,将内部名称与值的对应关系,存储到名称空间中
3.在当前执行文件创建一个名字,该名字指向被导入模块的名称空间
注意:模块之间的名称空间是相互独立的
模块中的代码仅在第一次被导入时执行
pycharm会自动帮你检测项目根目录下的模块,但是对于不在根目录下的,可能会报错,这是pycharm的问题,不影响执行
import 模块名 as 别名
import 模块名,模块名,模块名..导入多个模块
from导入:
使用from导入时,会把import后的名字直接放入当前名称空间
使用时不用写前缀
可能会与当前名称空间中的名字冲突
如果真的冲突,采取就近查找,谁最后定义我就用谁
from tools import func as f1,func1 as f2
from tools import *
*通配符,会将模块中,所有名字全部导入,极容易会出现名称冲突,慎用
在模块中,写__all__=[用于指定哪些名字可以被*导入]
__all__=['func1']
模块的两种执行方式
执行文件,导入文件
__name__可以获取当前模块的名字
当这个文件作为执行文件被执行时,__name__的名字为__main__,当这个文件被导入时,__name__的值时模块的名字
模块的搜索顺序
使用模块时必须先找到对应的模块文件,这就涉及到查找路径
1.查找内存中已经存在的
sys.modules,显示内存中已经加载的模块
模块名 in sys.modules,判断是否已经加载
2.内置
3.sys.path
当你要使用的模块不在执行文件同一级下时,就找不到,pycharm会自动把项目根目录加入sys.path,如果你碰巧要找的文件就在项目根目录下,就能找到,如果换了运行环境就可能找不到,所以为了保证项目在哪都能运行,所以我们需要将自己使用的文件路径添加到sys.path
可以把sys.path理解为解释器的环境变量
如果你的执行文件在根目录下,就能访问到当前项目中的所有文件,无需关系sys.path
- python全栈开发- day14列表推导式、生成器表达式、模块基础
- Python基础-列表生成式和生成器表达式
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
- python基础----列表生成式、生成器表达式
- Python基础-列表生成式和生成器表达式
- Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式
- python基础之生成器、三元表达式、列表生成式、生成器表达式
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- python基础五_列表生成式,生成器
- python-基础知识之三元表达式、列表推导式、生成器表达式
- day16 列表生成式 生成器表达式 模块
- python基础:列表生成式和生成器
- Python基础:08列表解析与生成器表达式
- python基础之协程函数、列表表达式、生成器表达式
- 列表生成式,生成器表达式,模块的使用
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- Python3 基础:高级特性-列表生成式和生成器
- 基于python的-列表生成式与生成器
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- 3.Python进阶-切片+列表生成式+复杂表达式+条件过滤+多层表达式