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实现的二维码生成小软件
Jul 11 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
python 进程的几种创建方式详解
Aug 29 Python
python之array赋值技巧分享
Nov 28 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
如何给Python代码进行加密
Jan 10 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
Python自动登录QQ的实现示例
Aug 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
第二节--PHP5 的对象模型
2006/11/16 PHP
php实现的在线人员函数库
2008/04/09 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
javascript document.referrer 用法
2009/04/30 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python可变参数函数用法实例
2015/07/07 Python
python修改字典内key对应值的方法
2015/07/11 Python
python发送邮件实例分享
2017/07/28 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
详解python-图像处理(映射变换)
2019/03/22 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
python 装饰器的基本使用
2021/01/13 Python
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
金融专业推荐信
2013/11/14 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
redis数据结构之压缩列表
2022/03/21 Redis
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS