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 08 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
python实现折半查找和归并排序算法
Apr 14 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python实现自动登录后台管理系统
Oct 18 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python基础教程之while循环
Aug 14 Python
python中树与树的表示知识点总结
Sep 14 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
python中怎么表示空值
Jun 19 Python
python中取整数的几种方法
Nov 07 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
在keras中实现查看其训练loss值
2020/06/16 Python
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
五年级学生评语
2014/04/22 职场文书
开幕式邀请函
2015/01/31 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
龙猫观后感
2015/06/09 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
Java并发编程必备之Future机制
2021/06/30 Java/Android
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL