gpt4 book ai didi

python - 查找最短子串

转载 作者:行者123 更新时间:2023-11-28 19:52:10 26 4
gpt4 key购买 nike

我已经编写了一段代码来从字符串中查找子字符串。它打印所有子字符串。但是我想要一个长度在2到6之间的子串并打印最小长度的子串。请帮助我

程序:

import re
p=re.compile('S(.+?)N')
s='ASDFANSAAAAAFGNDASMPRKYN'
s1=p.findall(s)
print s1

输出:

['DFA', 'AAAAAFG', 'MPRKY']  

期望的输出:

'DFA'  length=3

最佳答案

如果您已经有了列表,您可以使用 min功能与len作为第二个参数。

>>> s1 = ['DFA', 'AAAAAFG', 'MPRKY']
>>> min(s1, key=len)
'DFA'

编辑:
如果两个长度相同,您可以进一步扩展它以生成一个包含所有长度相同的元素的列表:

>>> s2 = ['foo', 'bar', 'baz', 'spam', 'eggs', 'knight']
>>> s2_min_len = len(min(s2, key=len))
>>> [e for e in s2 if len(e) is s2_min_len]
['foo', 'bar', 'baz']

当只有 1 个“最短”元素时,上面的方法也应该有效。

编辑 2: 为了完整起见,至少根据我的简单测试,计算最短元素的长度并在列表理解中使用它应该更快。更新如上。

关于python - 查找最短子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com