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版本的按任意键继续/退出
Sep 26 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
PyTorch学习笔记之回归实战
May 28 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python实现拼接图片
Mar 23 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
PyQt5实现简单的计算器
May 30 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
python爬虫工具例举说明
Nov 30 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python之Character string(实例讲解)
2017/09/25 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
企业治理工作自我评价
2013/09/26 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
工作会议主持词
2014/03/17 职场文书
小学毕业演讲稿
2014/04/25 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
社区服务活动总结
2014/05/07 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
护士自荐信范文
2015/03/25 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python