给定一个字符串列表,说str1= ["State0", "State1", "State2", "State5", "State8"]

我需要找到最高的州(此处为“ State8”)。我如何找到它?

还有没有比这更短的方法了,

str1= ["State0", "State1", "State2", "State5", "State8"]
k=0
for n in str1:
    s1 = ''.join(x for x in n if x.isdigit())
    if k<int(s1):
        k=int(s1)
print("State"+str(k))`


输出:“ State8”

最佳答案

您可以使用内置的max函数指定以下key

import re
l = ["State0", "State1", "State2", "State5", "State8"]

max(l, key=lambda x: int(re.search(r'\d+', x).group(0)))
# 'State8'

07-25 23:57