Python程序计算相邻元素的对数

Python程序计算相邻元素的对数

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

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

为了解决这个问题,我们将执行以下步骤−

  • it := 调用s的groupby()函数
  • ret := 一个新的列表
  • 对于其中的每一对(digit, gp),执行以下操作
    • 将(digit和gp列表的长度)插入ret中
  • 返回ret

示例

让我们看一下以下实现以更好地理解

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)]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程