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 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
Python求离散序列导数的示例
Jul 10 Python
python验证码图片处理(二值化)
Nov 01 Python
详解python中各种文件打开模式
Jan 19 Python
TensorFlow 显存使用机制详解
Feb 03 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Python 使用生成器代替线程的方法
Aug 04 Python
python操作redis数据库的三种方法
Sep 10 Python
Pytorch 图像变换函数集合小结
Feb 01 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
VsCode与Node.js知识点详解
2019/09/05 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
python类继承用法实例分析
2014/10/10 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
python动态文本进度条的实例代码
2020/01/22 Python
自荐信的两点禁忌
2013/10/30 职场文书
小学生元旦感言
2014/02/26 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
redis缓存存储Session原理机制
2021/11/20 Redis