我试图找到在长列表中找到x个字符串示例的最佳方法:
List = [123xyz, 456xyz, 678xyz, 123abc, 123ok, 123yes, 456abc, 456ok, noyes, yesno, yes123]
我想找到所有带有'123'*的对或所有*'abc'的对,但要找到最小对的'x'
example '123'* x=3 : 123xyz, 123abc, 123ok
example *'abc' x =2 : 123abc, 456abc
有人有想法或代码示例可以在列表中找到它吗?
答案 0 :(得分:0)
您的示例表明您正在寻找最多x个匹配项(而不是最少)。
如果您只想匹配前缀和后缀,则可以使用startswith()和endswith()函数。
为了将结果限制为特定数目的匹配,您可以简单地使用范围索引
例如:
# match "123*" x=3
result = [ s for s in List if s.startswith("123") ][:3]
# match "*abc" x=2
result = [ s for s in List if s.endswith("abc") ][:2]