我正在寻找一种方法来检查字符串
是否连续包含精确的x个相等的数字(而不是更多)。例如,对于 3 个数字:788895 将为 True
,但对于 7888895 则为 False
。
我有一个数字列表,我将在此列表上使用过滤器。
如果我想过滤那些连续至少包含 3 个数字的数字,则为:
num = filter(lambda x: any(y in x for y in ['000','111','222'..etc]),numbers)
但是如何更改此过滤器以返回 44000125
但不返回 44000012
,因为一行中有 4 个零?
编辑:如果没有任何['0000','1111'...]
,我可以采用强力方法来测试每个数字,但我认为应该有更好的方法。
最佳答案
这会检查最长的相同数字链的长度是否正好为三。
import itertools as it
max(len(list(v)) for k,v in it.groupby(s) if k.isdigit()) == 3
示例:
123 False
1223 False
12223 True
122223 False
1112222 False
aaa1 False
aa111aaaa True
关于python - 检查 number 是否连续包含 x 个相等的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546075/