获取3个连续数字的所有重叠匹配的列表



'123456789'我想找到3 consecutive numbers:的所有(重叠(匹配

ListIWant = [123,234,345,456,567,678,789]

我试过了:

print(re.compile(r"(d){3}").findall('123456789'))

我当前得到的输出:

['3', '6', '9']

我还想知道是否有更有效的方法来计数匹配次数而不是使用len(ListIWant)

我也在学习英语,如果你能纠正或建议我在这个地方表达自己的更好的单词/方式,我将不胜感激。

使用理解构建您的列表:

s = '123456789'
w = 3  # window size
l = [int(s[i:i+3]) for i in range(len(s) - w + 1)]
>>> l
[123, 234, 345, 456, 567, 678, 789]
a= '123456789'
ListIWant = []
for i, ele in enumerate(a):
if i < len(a)-3:
if (int(a[i+1]) == int(ele)+1) and (int(a[i+2]) == int(ele) + 2):
ListIWant.append(int(ele+a[i+1]+a[i+2]))
else:
if (int(a[i+1]) == int(ele)+1) and (int(a[i+2]) == int(ele) + 2):
ListIWant.append(int(ele+a[i+1]+a[i+2]))
break

输出:

[123, 234, 345, 456, 567, 678, 789]

相关内容

  • 没有找到相关文章

最新更新