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的几条建议分享
Feb 10 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python3.x上post发送json数据
Mar 04 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
对python中Librosa的mfcc步骤详解
Jan 09 Python
python获取地震信息 微信实时推送
Jun 18 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 Python
tensorflow+k-means聚类简单实现猫狗图像分类的方法
Apr 28 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批量生成图片缩略图的方法
2015/06/18 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
js友好的时间返回函数
2016/08/24 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
python算法学习之基数排序实例
2013/12/18 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python实现复制大量文件功能
2019/08/31 Python
Python 操作 MySQL数据库
2020/09/18 Python
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
廉洁家庭事迹材料
2014/05/15 职场文书
经营管理策划方案
2014/05/22 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android