说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
itertools.pairwise() 是一个在 Python 中常用于迭代操作的函数,尤其在需要依次访问可迭代对象中相邻的元素对时非常方便。itertools.pairwise() 函数能够以一种高效且简洁的方式生成相邻元素对的迭代器,这些元素对来自于给定的可迭代对象。
3.10 新版功能
语法为itertools.pairwise(iterable)
返回从输入 iterable 中获取的连续重叠对。
输出迭代器中 2 元组的数量将比输入的数量少一个。 如果输入可迭代对象中少于两个值则它将为空。
注意事项:
大致相当于:
def pairwise(iterable):
# pairwise('ABCDEFG') --> AB BC CD DE EF FG
a, b = tee(iterable)
next(b, None)
return zip(a, b)
例如:
import itertools
foo = itertools.pairwise('aabc')
[*foo]
# [('a', 'a'), ('a', 'b'), ('b', 'c')]
import itertools
data = [1, 2, 3, 4, 5]
pairs = itertools.pairwise(data)
for pair in pairs:
print(pair)
# 输出:
'''
(1, 2)
(2, 3)
(3, 4)
(4, 5)
'''
import itertools
data = "abcdef"
pairs = itertools.pairwise(data)
for pair in pairs:
print(pair)
# 输出:
'''
('a', 'b')
('b', 'c')
('c', 'd')
('d', 'e')
('e', 'f')
'''
假设我们有一组数据,我们希望计算每对相邻元素之间的差值。
示例数据:
data = [10, 15, 20, 25, 30]
目标:
计算每对相邻元素之间的差值:
[5, 5, 5, 5]
实现代码:
import itertools
data = [10, 15, 20, 25, 30]
differences = [y - x for x, y in itertools.pairwise(data)]
print(differences)
解释:
itertools.pairwise()
生成相邻元素对:itertools.pairwise(data)
生成可迭代对象 data 中相邻元素对的迭代器。[y - x for x, y in itertools.pairwise(data)]
计算相邻元素之间的差值。输出结果:
[5, 5, 5, 5]
这个实用案例展示了如何使用 itertools.pairwise()
对数据进行相邻元素对的迭代和操作,适用于需要逐对处理数据的场景,尤其在处理数值计算和数据转换时非常实用。
更新时间:2024-07-03 22:26:48 标签:python 迭代 itertools 连续 重叠