【问题标题】:How can I check the length of consecutive characters in a list in python?如何检查python列表中连续字符的长度?
【发布时间】:2020-02-23 06:11:39
【问题描述】:

基本上说我在python中有一个列表

lst = [6, 6, 7, 1, 1, 1, 1, 4, 1]

程序应返回 4,因为数字“1”以连续方式显示 4 次。顺便说一句,数字 6 也以连续的方式显示,但程序应该获得在连续时出现最多的数字

更多示例:

[6, 4, 4, 4, 1, 1, 7]

应该输出 3,因为 '4' 是连续的 3 次

我已经被这个问题困扰了一段时间了,有什么建议吗??

【问题讨论】:

  • itertools.groupby

标签: python count unique


【解决方案1】:

groupby() 默认情况下会为您提供相同值的各个组:

> [list(g) for k, g in groupby(lst)] 
[[6, 6], [7], [1, 1, 1, 1], [4], [1]]

您可以使用len 的键将其传递给max() 以获得最长的:

> from itertools import group-by
> lst = [6, 6, 7, 1, 1, 1, 1, 4, 1]
> max((list(g) for k, g in groupby(lst)), key=len)
[1, 1, 1, 1]

这是最长的分组,从中可以得到长度。或者,您可以只构建一个长度列表并在没有密钥的情况下调用max

max(len(list(g)) for k, g in groupby(lst))

【讨论】:

    【解决方案2】:

    两个不同的问题可能会有所帮助。

    首先将文本转换成列表可以查看this的答案。

    一旦你有了你的列表,你需要计算连续的值,它被问到并解决了here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多