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 相关文章推荐
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
python 随机打乱 图片和对应的标签方法
Dec 14 Python
flask session组件的使用示例
Dec 25 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
python 实现多线程下载视频的代码
Nov 15 Python
pandas分组聚合详解
Apr 10 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
Python数据模型与Python对象模型的相关总结
Jan 26 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
新浪新闻小偷
2006/10/09 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
layui文件上传实现代码
2017/05/20 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
Python3内置模块random随机方法小结
2019/07/13 Python
python 实现多维数组(array)排序
2020/02/28 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
借款协议书
2014/04/12 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
培训后的感想
2015/08/07 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python的property属性详细讲解
2022/04/11 Python