我知道很多人都问过这个问题,但想看看是否有人愿意就我的代码提供一些反馈,以及为什么它不能工作。对于那些不熟悉这个问题的人,我使用了一个巨大的字符串,并试图识别两边恰好由三个大写字母包围的小写字母(所以两边的第四个字符应该是小写的)。奇怪的是,我的代码有时在较短的字符串上工作,然后随机地停止工作。但是它永远不能处理完整的字符串(可能是10,000+字符)。好的,下面是代码:
def python_challenge_3(code):
for letter in code[3:-3]:
if letter.islower():
i = code.index(letter)
if code[i-3:i].isupper() and code[i-4].islower() and code[i+1:i+4].isupper() and code[i+4].islower():
return code[i-3:i+4]
else:
continue
else:
continue
提前感谢!
发布于 2018-08-25 01:07:24
您可以使用regular expressions根据您指定的条件提取字符。代码可能如下所示:
import re
def extract(txt: str) -> list:
return re.findall(r'[a-z][A-Z]{3}([a-z]{1})[A-Z]{3}[a-z]', txt)
if __name__ == '__main__':
print(extract('abCDEfGHIjklMNOpQRStUVwXYz'))
这会打印出所有匹配的内容:
>>> ['f', 'p']
https://stackoverflow.com/questions/52008561
复制相似问题