python 中的列表生成式、生成器表达式、模块导入


Posted in Python onJune 19, 2019

5.16 列表生成式

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]
print(l)

5.17 列表生成式与生成器表达式的应用

names=['egon','alex_sb','wupeiqi','yuanhao','lxx']
res=map(lambda x:x.upper(),names)  # map函数 映射
names=list(res)         #['EGON', 'ALEX_SB', 'WUPEIQI', 'YUANHAO', 'LXX']
print(names)
names=['egon','alex_sb','wupeiqi','yuanhao','lxx']
names=[name.upper() for name in names]   #列表生成式
print(names)
names=['egon','alex_sb','wupeiqi','yuanhao','lxx'] #列表生成式
names=[len(name) for name in names if not name.endswith('sb')]
print(names)
nums=[]                 #一般循环方法
with open('a.txt','r',encoding='utf-8') as f:
  for line in f:
    nums.append(len(line))
print(max(nums))
with open('a.txt','r',encoding='utf-8') as f:#列表生成式
  nums=[len(line) for line in f]
  print(max(nums))  #28
with open('a.txt','r',encoding='utf-8') as f:
  nums=(len(line) for line in f) #生成器表达式
  print(next(nums))  #15
  print(next(nums))  #17
  print(next(nums))  #13
  print(max(nums))  #28
  print(max(nums))  #空列表
  max(len(line) for line in f)  #去掉括号

第六章模块

什么是模块? 模块就是一系统功能的集合体,在python中,一个py文件就是一个模块,比如module.py,其中模块名module

6.1 import 导入模块

6.11 导入方式一

import spam
spam.read1()

首次导入模块发生三件事 ​ 1、创建一个模块的名称空间 ​ 2、执行模块对应文件,将产生的名字存放于1中的名称空间 ​ 3、在当前执行文件中拿到一个模块名,该模块名指向1的名称空间

import spam
强调:之后的导入会直接引用第一次导入的结果,不会重复执行文件
import spam
print(spam)
模块中功能的执行始终以模块自己的名称空间为准
read1=111111    #money=1000
spam.read1()    #def read1():
          #  print('spam模块.read1:',money)
#结果:spam模块.read1: 1000

为模块起别名:

import spam as sm
sm.read1()
engine=input('>>: ').strip()
if engine == 'mysql':
  import mysql as db
else engine == 'oracle':
  import oracle as db
db.parse()

一行导入多个模块(不推荐使用)

import spam,mysql,oracle

6.12 导入方式二

from spam import money,read1,read2,change
read1()​
from spam import *   #从模块中导入所有方法
read1()        #spam中:__all__=['money','read1'] 表示*能导入的方法,不写则表示能导入所有​

首次导入模块发生三件事 1、创建一个模块的名称空间 2、执行模块对应文件,将产生的名字存放于1中的名称空间 提示:from...... import....... 与import前两件事一模一样 3、在当前名称空间中直接拿到模块中的名字,可以直接使用,不用加任何前缀同import,执行模块中的功能,始终以模块的名称空间为准

from spam import read1
money=1111111111
read1()   #结果:spam模块.read1: 1000
from ... import ......名字,拿到的名字可以不加前缀直接使用,使用起来更加方便, 但问题是容易与当前执行文件中相同的名字冲突
from spam import money
money=1111111111111111
print(money)    #1111111111111111,而不是1000

为模块起别名:

from spam import money as m
print(m)

在一行导入多个

from spam import money,read1,read2

6.2 文件的两种执行方式:

#print(__name__)
__name__的值:
1、在文件被直接执行的情况下,等于'__main__'
2、在文件被导入的情况下,等于模块名
​
if __name__ == '__main__':
   print('文件被当中脚本执行啦。、。')
  read1()
else:
   print('文件被导入啦')
   read2()

6.3 模块的搜索路径

模块的查找顺序是:

内存中已经加载的模块 -----》内置模块-------》sys.path路径中包含的模块

import sys
sys.path.append(r'D:\code\SH_fullstack_s1\day14\dir1')
​
import m1
m1.f1()

强调 : sys.path的第一个路径是当前执行文件所在的文件夹

总结

以上所述是小编给大家介绍的python 中的列表生成式、生成器表达式、模块导入,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python数据结构之二叉树的遍历实例
Apr 29 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
Django中的静态文件管理过程解析
Aug 01 Python
Python PyInstaller安装和使用教程详解
Jan 08 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Django 返回json数据的实现示例
Mar 05 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 Python
PyQt5 QTable插入图片并动态更新的实例
Jun 18 #Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 #Python
PyQt5 对图片进行缩放的实例
Jun 18 #Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 #Python
Python生成一个迭代器的实操方法
Jun 18 #Python
利用anaconda保证64位和32位的python共存
Mar 09 #Python
python获取地震信息 微信实时推送
Jun 18 #Python
You might like
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
google地图的路线实现代码
2009/08/20 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
详解Flask前后端分离项目案例
2020/07/24 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
合作意向书范本
2014/03/31 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
python数字类型和占位符详情
2022/03/13 Python