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单元测试框架unittest使用方法讲解
Apr 13 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
详解python里的命名规范
Jul 16 Python
python 自定义对象的打印方法
Jan 12 Python
python 寻找离散序列极值点的方法
Jul 10 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
python 基于opencv操作摄像头
Dec 24 Python
python面向对象版学生信息管理系统
Jun 24 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 更新数据库中断的解决方法
2009/06/05 PHP
php HandlerSocket的使用
2011/05/02 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
python全栈知识点总结
2019/07/01 Python
keras实现多种分类网络的方式
2020/06/11 Python
python实现逻辑回归的示例
2020/10/09 Python
Python实现石头剪刀布游戏
2021/01/20 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
介绍一下Ruby的特点
2013/01/20 面试题
个人党性剖析材料
2014/02/03 职场文书
五好党支部事迹材料
2014/02/06 职场文书
消防安全宣传口号
2014/06/10 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
迎新生欢迎词
2015/01/23 职场文书
老乡会致辞
2015/07/28 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
检讨书之工作不认真
2019/08/14 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript