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搭建简易服务器分析与实现
Dec 15 Python
python实现udp数据报传输的方法
Sep 26 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
详解Python中如何写控制台进度条的整理
Mar 07 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
python3的print()函数的用法图文讲解
Jul 16 Python
简单了解Python读取大文件代码实例
Dec 18 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
python 爬取小说并下载的示例
Dec 07 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php基础教程
2015/08/26 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
django框架自定义用户表操作示例
2018/08/07 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
python读取Excel表格文件的方法
2019/09/02 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
python next()和iter()函数原理解析
2020/02/07 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
总裁秘书岗位职责
2013/12/04 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
行政复议答复书
2015/07/01 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis