检查字符串是否包含6个或6个以上的相同数字



我需要一个python或postgres脚本,将检查字符串中是否包含6个或更多数字的副本。例如,"811811113111711","822222222255555"应该给出真值,"812345678901234"应该给出假值。字符串是一个数字,总是相同的length - 16starts with 8,在此之前验证。

目前有这个,但它是一个非常基本的解决方案,只适用于彼此相邻的字符,我需要所有的数字。

a_string = "811111111111111"
matches = ["000000", "111111", "222222", "333333", "444444", "555555", "666666", "777777", "888888", "999999"]
if any([x in a_string for x in matches]):
print('true')
else:
print('false')

您可能想使用collections.Counter。这可以看作是一个多集合,即一个值可以多次出现的集合。它是用一个字典实现的,其中键是集合项,值是出现的次数。

例如,

>>> from collections import Counter
>>> Counter("11333111333")
Counter({'3': 6, '1': 5})

从那里你可以过滤计数器,看看你是否有相关的数据:

some_counter = Counter(some_string)
duplicate_digits = {k : v for k,v in some_counter.items() if k in "0123456789" and v >= 6}

如果duplicate_digits不为空,表示已成功计数一个数字超过6次。

相关内容

  • 没有找到相关文章

最新更新