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脚本实现下载合并SAE日志
Feb 10 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
python运行时间的几种方法
Jun 17 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
python 调用c语言函数的方法
Sep 29 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
python多线程使用方法实例详解
Dec 30 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python爬取音频下载的示例代码
Oct 19 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的控制语句
2006/10/09 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python发送邮件功能实现代码
2016/07/15 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
python怎么提高计算速度
2020/06/11 Python
如何使用python写截屏小工具
2020/09/29 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
机械工程师岗位职责
2014/06/16 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
学校开除通知书
2015/04/25 职场文书
写给女朋友的保证书
2015/05/09 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
java实现对Hadoop的操作
2021/07/01 Java/Android