如何在python中检查列表中连续字符的长度?
基本上说我有一个python列表如何在python中检查列表中连续字符的长度?,python,count,unique,Python,Count,Unique,基本上说我有一个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次 我一直在这个问题上纠缠了一段时间,任何建议都会默认为您提供具有相同值的单个组: > [list(g) for k, g in groupby(lst)] [[6, 6], [7],
lst = [6, 6, 7, 1, 1, 1, 1, 4, 1]
程序应返回4,因为数字“1”连续显示4次。顺便说一句,数字6也以连续的方式显示,但是程序应该在连续时获得显示最多的数字
更多示例:
[6, 4, 4, 4, 1, 1, 7]
应输出3,因为“4”连续3次
我一直在这个问题上纠缠了一段时间,任何建议都会默认为您提供具有相同值的单个组:
> [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))
默认情况下,将为您提供具有相同值的单个组:
> [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))
两个不同的问题可能会有所帮助 首先要将文本转换为列表,您可以检查答案
一旦你有了你的列表,你需要计算连续的值,它被询问和解决。两个不同的问题可能会有所帮助 首先要将文本转换为列表,您可以检查答案
一旦你有了你的列表,你需要计算连续的值,它被询问并解决。
itertools.groupby
itertools.groupby