Python 查找';x';列表中匹配字符串的示例

Python 查找';x';列表中匹配字符串的示例,python,python-3.x,Python,Python 3.x,我试图找到在长列表中找到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 有人有在列表中找到此项的想

我试图找到在长列表中找到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

有人有在列表中找到此项的想法或代码示例吗?

您的示例表明您正在查找最多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]    

在列表上循环,检查字符串是以
123
开头还是以
abc
结尾?另外,123abc
123abc
属于哪一组?你所说的“x”是什么意思?你所说的“配对”是什么意思?将你想要的结果添加到你的问题中也显示出你迄今为止所做的尝试