Python 在包含最大数字的列表中查找字符串

Python 在包含最大数字的列表中查找字符串,python,string,list,Python,String,List,给定一个字符串列表,比如说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):

给定一个字符串列表,比如说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))`
str1=[“State0”、“State1”、“State2”、“State5”、“State8”]
k=0
对于str1中的n:
s1=''.join(如果x.isdigit(),则x代表n中的x)
如果k

这是另一种简单易懂的方法:)

您可以使用内置函数指定以下
键:

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

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

如果
StateN
中的
N<10
,则这就足够了

states=['State0','State1','State2','State5','State8']
最大值(州)
否则,这就可以了

max(状态中的s的int(s.replace('State',''))

构建一个只包含整数部分的新值列表,获取该列表的
max()
,然后用“State”打印它:


您的输入是否总是
StateN
?是!!!输出总是“StateN”难道你不能去掉
状态
并转换成整数吗?因为它没有带来任何有用的东西吗?如果您的输出只是ever
StateN
where
0@AdamSmith,N
import re
l = ["State0", "State1", "State2", "State5", "State8"]

max(l, key=lambda x: int(re.search(r'\d+', x).group(0)))
# 'State8'
import re
str1= ["State0", "State1", "State2", "State5", "State8"]

max_1 = sorted(str1, key=lambda x: int(re.findall("\d+$",x)[0]), reverse=True)[0]
min_1 = sorted(str1, key=lambda x: int(re.findall("\d+$",x)[0]), reverse=True)[-1]
integers = [int(x[5:]) for x in str1]
print("State%d" % max(integers))