Python| itertools之pairwise:获取连续的重叠对

简介

最近刷力扣好几次都遇到了pairwise这个函数,感觉还挺方便的,今天又遇到后,搜索了一下他的含义及其用法。

总结如下。

参考网址:

「Python」Python 标准库之 itertools 使用指南

PS:这个文章关于itertools库的总结很详细。码住。

1. itertools.pairwise()

首先,这个函数是Python 3.10 新特性。
它表示的是一个迭代器(有点废话,itertools里面都是各种迭代器),他的含义是,从对象中获取连续的重叠对

比如说:s= ‘abcde’,itertools.pairwise(s)的输出应该为,ab, bc, cd, de;
如果s中的个数小于2,输出为空。

示例程序:

from itertools import pairwise
a = pairwise('12345') 
# 输出的a应为是 12 23 34 45

b = pairwise([1])
# b为空

2. 替换itertools.pairwise()函数

如上所述,这个函数在python3.10后才有,之前的版本中并不能使用。
那么如果要在程序中实现这个功能,其实也很简单,一次for循环即可。

s = '12345'
for i in range(1,len(s)):
	k1, k2 = s[i-1], s[i] # k1,k2输出应该为1,2;2,3...

与迭代器pairwise相比,这个的麻烦地方在于,不能使用迭代器对重叠对进行比较,程序效率较慢一点。

实际上也有一些其他的pairwise函数的实例,比如:python实现pariwise。该链接中有完整的python程序。

对象纬度较高,且不能用python3.10的情形下,可以使用该方法。

其他

之前还写了一个itertools之combinations的总结,见 [Python | itertools之combinations实现排列组合]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值