检查数字是否包含连续x个相等的数字

时间:2015-12-31 11:48:44

标签: python filter built-in

我正在寻找一种检查方法,string是否包含连续的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'...],我可以用蛮力方法来测试每个数字,但我认为应该有更好的方法。

1 个答案:

答案 0 :(得分:2)

这将检查最长的相同数字链是否长度正好为三。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100%p"
        android:duration="300"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>

示例:

import itertools as it

max(len(list(v)) for k,v in it.groupby(s) if k.isdigit()) == 3