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实现排列组合]

猜你喜欢

转载自blog.csdn.net/lovetaozibaby/article/details/124816816