python基础之协程,列表生成式,生成器表达式
三元表达式
#三元表达式 name = 'alex' name = 'egon' res='SB' if name == 'alex'else 'shuai' print(res)#输出:shuai
for循环
egg_list=[] #空列表for i in range(100): #for循环egg_list.append('egg%s' %i) #追加到egg_list空列表中 print(egg_list)#输出:['egg0', 'egg1', 'egg2', 'egg3',....'egg99']
列表生成式输出
l=['egg%s' %i for i in range(100) if i > 50] print(l)输出:['egg51', 'egg52', 'egg53', 'egg54', 'egg55',...'egg99']
l=[1,2,3,4] #定义一个列表 s='hello' #定义一个字符串 l1=[(num,s1) for num in l if num > 2 for s1 in s] #当列表里的数字大于2时,把列表里的所有数字与字符串里的所有字母组成元组,生成由元组组成的列表 print(l1)[(3, 'h'), (3, 'e'), (3, 'l'), (3, 'l'), (3, 'o'), (4, 'h'), (4, 'e'), (4, 'l'), (4, 'l'), (4, 'o')]------------------------------分割线------------------------------
l=[1,2,3,4]s='hello'l1=[]for num in l: for s1 in s: t=(num,s1) l1.append(t)print(l1) #输出:
[(1, 'h'), (1, 'e'), (1, 'l'), (1, 'l'), (1, 'o'), (2, 'h'), (2, 'e'), (2, 'l'), (2, 'l'), (2, 'o'), (3, 'h'), (3, 'e'), (3, 'l'), (3, 'l'), (3, 'o'), (4, 'h'), (4, 'e'), (4, 'l'), (4, 'l'), (4, 'o')]
import os g=os.walk('C:\\egon') file_path_list=[] for i in g:print(i)for j in i[-1]:file_path_list.append("%s\\%s" %(i[0],j)) print(file_path_list)g=os.walk('C:\\egon') l1=['%s\\%s' %(i[0],j) for i in g for j in i[-1]] print(l1)
grep -rl(windows环境)
要求:在文件里递归找到关于包含“Python”内容的文件的绝对路径并打印出来
# 定义阶段 import os, timedef init(func): # 装饰器的作用是使下面的生成器初始化,yield等着被传值def wrapper(*args, **kwargs):res = func(*args, **kwargs)next(res)return resreturn wrapper@init def search(target):'''找到文件的绝对路径'''while True:dir_name = yieldprint("search开始工作:文件的绝对路径")time.sleep(2) # 加上等待时间是为了看着更有效果g = os.walk(dir_name)for i in g:for j in i[-1]:file_path = "%s\\%s" % (i[0], j)target.send(file_path) # @init def opener(target):'''打开文件,读取文件句柄'''while True:file_path = yieldprint("cat开始工作:读取文件内容")time.sleep(2) # 加上等待时间是为了看着更有效果with open(file_path,encoding="utf-8") as f:target.send((file_path,f))@init def cat(target):'''读取文件内容'''while True:file_path,f = yieldprint("cat开始工作:读取文件内容")time.sleep(0.3) # 加上等待时间是为了看着更有效果for line in f:target.send((file_path,line))@init def grep(pattern, target):'''过滤一行内容中有需要的内容,就把路径传给下面'''while True:file_path,line = yieldprint("grep开始工作:过滤内容")if pattern in line:target.send(file_path)@init def printer():'''打印文件路径'''while True:file_path = yieldprint("printer开始工作:打印文件的绝对路径")time.sleep(2)print(file_path)#调用阶段 g = search(opener(cat(grep('python',printer())))) g.send('C:\\egon')
打印C盘egon文件夹包含python的内容
转载于:https://www.cnblogs.com/bingabcd/p/6700072.html
python基础之协程,列表生成式,生成器表达式相关推荐
- 列表生成式,生成器表达式,模块的使用
三元表达式 无论条件成立与否都要返回一个值, 用于简化仅有一个判断的函数(或代码块)递归 递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的 二分查找法匿名函数 仅能在定义时使用 ...
- Python并发之协程gevent基础(5)
1,gevent介绍 gevent是第三方库,通过 greenlet 实现 coroutine,创建.调度的开销比 线程(thread) 还小,因此程序内部的 执行流 效率高. gevent 实现了 ...
- Python并发之协程gevent基础
基本示例 from gevent import monkey monkey.patch_all() # 记住一定放在第一行,这里是打补丁的意思,time模块在使用协程gevent模块的时候,必须打补丁 ...
- python 协程可以嵌套协程吗_Python | 详解Python中的协程,为什么说它的底层是生成器?...
今天是Python专题的第26篇文章,我们来聊聊Python当中的协程. 我们曾经在golang关于goroutine的文章当中简单介绍过协程的概念,我们再来简单review一下.协程又称为是微线程, ...
- python列表生成器语法_Python 列表生成式\生成器
Python 列表生成式+生成器 一.列表生成式 1.什么是列表生成器 一种可以便捷地生成列表的表达式,有时候可以替换list.append(变量) 2.需求. 如何将列表中的每个数据都加1 列表:d ...
- Python与Golang协程异同
背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定 ...
- Python 中 异步协程 的 使用方法介绍
静觅 崔庆才的个人博客:Python中异步协程的使用方法介绍:https://cuiqingcai.com/6160.html Python 异步 IO .协程.asyncio.async/await ...
- python 多线程和协程结合_Python 异步编程,看这门课就够了~
我们常见的 Linux.Windows.Mac OS 操作系统,都是支持多进程的多核操作系统.所谓多进程,就是系统可以同时运行多个任务.例如我们的电脑上运行着 QQ.浏览器.音乐播放器.影音播放器等. ...
- Python 多线程 多进程 协程 yield
python中多线程和多进程的最大区别是稳定性和效率问题 多进程互相之间不影响,一个崩溃了不影响其他进程,稳定性高 多线程因为都在同一进程里,一个线程崩溃了整个进程都完蛋 多进程对系统资源开销大,多线 ...
最新文章
- 深度学习:tensorflow层次结构,朴素NN代码实现tensorflow
- 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?
- go返回多个值和python返回多个值对比
- 真格量化-持仓量第n档卖方主力跟随策略
- LeetCode MySQL 1322. 广告效果
- android 引用非 android 工程,Unity3D调用android方法(非插件方式)
- java applet怎么传参,使用不带浏览器的参数运行java applet
- Linux 找不到qt,linux – CMake找不到QtCore
- dispatch js实现_js实现对象自定义事件,触发,on监听事件的方式
- openwrt下ipk生成过程及原理
- 生活中的逻辑谬误02.稻草人谬误
- 北大公开课计算机,清华、北大、浙大的计算机课程资源集都在这里了
- 远程操作安卓手机——所见即所控
- (华为社招岗位,部门---公共开发部,数字能源,计算,Carbu, 上海海思,GTS,海思,2012):上海!上海上海!
- 满分的一份软件测试工程师简历,凭什么?
- 【C语言进阶】指针(进阶2)
- 虚拟机hmc连接服务器,VMware虚拟机安装HMC图文教程
- EBS中AP发票分配行的解释
- 微信小程序实现左边图片右边文字效果
- 百度广告产品系统级测试技术演进
热门文章
- UVA 610 Street Directions 双连通分量
- WPF编游戏系列 之四 用户控件
- 15:18 2009-7-5 小结
- Kali Linux安装谷歌浏览器
- 打开别人Xamarin项目找不到android.jar文件
- 列表根据下标取值_散列表(上):Word文档中的单词拼写检查功能是如何实现的?...
- php面向对象 设计模式,PHP面向对象单态设计模式详解
- python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...
- BCI里程碑!脑机接口首次让患者输出完整句子
- python判断文件夹是否存在