python编程学习使用管道Pipe编写优化代码


Posted in Python onNovember 20, 2021

我们知道 map 和 filter 是两种有效的 Python 方法来处理可迭代对象。

但是,如果你同时使用 map 和 filter,代码可能看起来很混乱。

python编程学习使用管道Pipe编写优化代码

如果你可以使用管道那不是更好了?像下面这样的方式来处理。

python编程学习使用管道Pipe编写优化代码

Pipe 库可以做到这一点。

什么是管道?

Pipe 是一个 Python 库,可让你在 Python 中使用管道。

管道 (|) 将一种方法的结果传递给另一种方法。

我喜欢 Pipe,因为它使我的代码将多个方法应用于 Python 可迭代对象时看起来更简洁。由于 Pipe 只提供了几个方法,所以学习Pipe也很容易。 在本文中,我将向你展示一些我认为最有用的方法。

要安装Pipe,请输入:

pip install pipe

Where:可迭代对象中的过滤元素

与 SQL 类似,Pipe 的 where 方法也可用于过滤可迭代对象中的元素。

python编程学习使用管道Pipe编写优化代码

Select: 将函数应用于可迭代对象

select方法类似于map方法。

select 将方法应用于可迭代的每个元素。

在下面的代码中,我使用 select 将列表中的每个元素乘以 2。

python编程学习使用管道Pipe编写优化代码

现在,你可能想知道:如果 map 和 filter 具有相同的功能,为什么我们需要 where 和 select 方法?

这是因为你可以使用管道在另一个方法之后插入一个方法。 因此,使用管道消除了嵌套的括号并使代码更具可读性。

python编程学习使用管道Pipe编写优化代码

展开可迭代对象

1、chain方法

使用嵌套的可迭代对象可能会很痛苦。 幸运的是,我们可以使用 chain 来链接一系列可迭代对象。

python编程学习使用管道Pipe编写优化代码

尽管应用 chain 可以使可迭代对象的嵌套较少,我们仍然需要一个更强大的工具。 为了处理深度嵌套的列表,我们可以使用 traverse 代替。

2、traverse:递归展开可迭代对象

traverse 方法可用于递归展开可迭代对象。 你可以使用此方法将深度嵌套的列表转换为平面列表。

python编程学习使用管道Pipe编写优化代码

让我们将此方法与 select 方法集成以获取字典的值并展平列表。

python编程学习使用管道Pipe编写优化代码

这样处理是不是很酷?

将列表中的元素分组

有时,使用特定函数对列表中的元素进行分组可能很有用。 这可以通过 groupby 方法轻松完成。

为了看看这个方法是如何工作的,让我们把一个数字列表变成一个字典,这个字典根据数字是偶数还是奇数来分组。

python编程学习使用管道Pipe编写优化代码

在上面的代码中,我们使用 groupby 将数字分组为偶数组和奇数组。 应用此方法后的输出如下所示:

[('Even', <itertools._grouper at 0x7fbea8030550>),
 ('Odd', <itertools._grouper at 0x7fbea80309a0>)]

接下来,我们使用 select 将元组列表转换为字典列表,其键是元组中的第一个元素,值是元组中的第二个元素。

[{'Even': [2, 4, 6, 8]}, {'Odd': [1, 3, 5, 7, 9]}]

为了只获取大于 2 的值,我们可以在 select 方法中添加 where 方法:

python编程学习使用管道Pipe编写优化代码

dedup 方法删除列表中的重复项

python编程学习使用管道Pipe编写优化代码

这听起来可能并不有趣,因为 set 方法可以做同样的事情。 但是,此方法更灵活,可以让你获取唯一元素。

例如,你可以使用此方法获取一个小于 5 的唯一元素和另一个大于或等于 5 的唯一元素。

python编程学习使用管道Pipe编写优化代码

现在,让我们将此方法与 select 结合起来,从哪里获取具有重复键和 None 值的字典的值。

python编程学习使用管道Pipe编写优化代码

在上面的代码中,我们:

  • 删除具有相同名称的项目
  • 获取计数值
  • 只选择整数值。

在几行代码中,我们可以将多个方法应用于可迭代对象,同时仍然可以保持代码整洁,不是吗?

结论

刚刚我们学习了如何使用管道来保持代码简洁简洁, 我希望这篇文章能让你了解到可迭代对象上的复杂操作其实只需要一行简单的代码。

以上就是python编程学习使用管道Pipe编写优雅代码的详细内容,更多关于Python管道Pipe 编写代码的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 将字符串转换成字典dict
Mar 24 Python
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
python:socket传输大文件示例
Jan 18 Python
python 批量修改/替换数据的实例
Jul 25 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
parser.add_argument中的action使用
Apr 20 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
Python如何实现感知器的逻辑电路
Dec 25 Python
Python使用BeautifulSoup4修改网页内容
May 20 Python
python自动化测试通过日志3分钟定位bug
Nov 20 #Python
Python实现位图分割的效果
python脚本框架webpy模板赋值实现
python脚本框架webpy模板控制结构
Nov 20 #Python
python脚本框架webpy的url映射详解
Nov 20 #Python
Pygame Time时间控制的具体使用详解
Nov 17 #Python
Pygame如何使用精灵和碰撞检测
You might like
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
2016/08/28 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Python-基础-入门 简介
2014/08/09 Python
Python max内置函数详细介绍
2016/11/17 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
写好自荐信的要点
2013/11/06 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
致百米运动员广播稿
2014/01/29 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
家装电话营销开场白
2015/05/29 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书