python - 检查Python中连续相等元素的数量

标签 python python-3.x list dictionary tuples

我的目的是确定给定字符串或列表中连续相等元素的最大数量。

我将使用一个示例来使自己更加清楚:


  (1,1,1,1)-> {1:4}
  
  (1,1,'a','a',1)-> {1:2,'a':2}
  
  (2,2,2,0,2,2,0)-> {2:3,0:1}


我对类似的东西感到厌倦,但它不起作用:

d={}
for i in range(len(l)):
    while l[i]==l[i+1]:
        d[i]=l.count(i)
return d

最佳答案

一种可能的方法,使用itertools.groupby

from itertools import groupby

t = 1,1,'a','a',1

out = {}
for v, g in groupby(t):
    l = sum(1 for _ in g)
    if out.get(v, float('-inf')) < l:
        out[v] = l

print(out)


印刷品:

{1: 2, 'a': 2}

关于python - 检查Python中连续相等元素的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59921262/

相关文章:

python - 推送到 Diego : Cannot write: No space left on device

python - 在 Python 中将二维图形转换为圆柱体

python - 忽略少于三个词的项目

尝试将txt文件插入MySql时MySql错误1054

python - 在 Python 中切掉列表中每个(列表)元素中的第一个元素

python - 如何避免【Errno 12】使用子进程模块导致的Cannot allocate memory错误

python - 根据请求将上传的文件保存在子文件夹中

python - 对存储在 Python 列表中的对象中的值进行寻址

c# - 从方法返回列表 - 速记?

c++ - 如何从存储在列表中的对象调用成员函数