首页 文章资讯内容详情

计算连续元素对的 Python 程序

2026-06-03 2 花语

假设我们有一个数字字符串s包含几个数字。数字可能出现多次。我们必须返回一些对(digit,count)表示哪个数字在s中连续出现了多少次。为了解决这个问题,我们可以使用groupby()itertools库下的函数。这将返回一个迭代器对象,其中每个项目将位于第一位,另一个groupby对象位于第二位。我们必须为每对计算groupby对象的数量。

因此,如果输入类似于s="11522226551",那么输出将是[(1,2),(5,1),(2,4),(6,1),(5,2),(1,1)]因为一开始1出现了两次,然后是单个5,然后是四个2,依此类推。

示例

让我们看下面的实现来更好地理解

from itertools import groupby def solve(s): it = groupby(s) ret = [] for digit, gp in it: ret.append((int(digit), len(list(gp)))) return ret s = "11522226551" print(solve(s))

输入

"11522226551"输出结果[(1, 2), (5, 1), (2, 4), (6, 1), (5, 2), (1, 1)]