我发现了一个很好的问题,其中可以使用以下命令搜索字符串的多个结尾:

Check if string ends with one of the strings from a list

我的问题是,如何从元组中返回哪个值实际上是匹配项?如果我有多个比赛,该如何选择最佳比赛?

例如:

str= "ERTYHGFYUUHGFREDFYAAAAAAAAAA"
endings = ('AAAAA', 'AAAAAA', 'AAAAAAA', 'AAAAAAAA', 'AAAAAAAAA')
str.endswith(endings) ## this will return true for all of values inside the tuple, but how can I get which one matches the best


在这种情况下,可以从元组中找到多个匹配项,我该如何处理,并且仅返回最佳(最大)匹配项,在这种情况下,应为:endswith(tuple)我要在末尾删除的(使用正则表达式左右)。

我的意思是可以在for循环中执行此操作,但是也许有一种更简单的pythonic方法?

最佳答案

>>> s = "ERTYHGFYUUHGFREDFYAAAAAAAAAA"
>>> endings = ['AAAAA', 'AAAAAA', 'AAAAAAA', 'AAAAAAAA', 'AAAAAAAAA']
>>> max([i for i in endings if s.endswith(i)],key=len)
'AAAAAAAAA'

关于python - 使用.endswith(tuple)测试时获取实际的结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32349928/

10-11 17:27