在数字列表中搜索特定模式

2024-04-23 22:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理欧拉工程问题51,我试图通过搜索素数列表来解决它。我已经开始尝试寻找候选人的例子(56003)。你知道吗

我把这个问题归结为:首先,把注意力限制在有一定数字的素数上。例如,我从数组中的5位素数开始。你知道吗

ABCDE表示素数。仅替换一个数字:*BCDE产生5C1=5个候选模式:A*CDE等。替换两个数字:**CDE产生5C2=10个候选模式。Etc最多替换4位:***E,这将产生5C4模式候选。你知道吗

举个例子,我有一个数字列表

s = ['55967', '56003', '56113', '56081', '56333', '56093', '58091']

假设我想搜索AB**E模式:那么我想让搜索函数找到:56003、56113和5633。你知道吗

我的问题是我不知道如何做到这一点。我读过一些关于正则表达式的文章,但最后得出结论:RE's只会让我的大脑受伤。你知道吗

谢谢


Tags: 函数列表ab模式etc数字数组工程
1条回答
网友
1楼 · 发布于 2024-04-23 22:08:49

下面的正则表达式片段应该可以解决您的问题。你知道吗

import re
s = ['55967', '56003', '56113', '56081', '56333', '56093', '58091']
patt_s = re.compile('(56\d\d3)')
for s_nr in s:
    matched_re = re.search(patt_s, s_nr)
    if matched_re:
        print matched_re.group(0)

输出: 56003 56113 56333 56093个

但是,您确实需要仔细阅读正则表达式,并尝试简单的正则表达式,或者修改上面的正则表达式以适应其他情况!至少在许多不同的语言中,它们或多或少是相同的。你知道吗

相关问题 更多 >