python在子字符串上使用max函数

python在子字符串上使用max函数,python,Python,我有一个类似的列表: list = [u'5.0', u'5.1', u'5.2', u'5.3', u'5.4', u'5.5', u'5.6', u'5.7', u'5.8', u'5.9', u'5.10', u'5.11' 我正在努力获得5后的最高数字。含义5.11 我不能在这里使用max函数,因为它将返回5.9 i、 e 结果将是5.9而不是5.11 是否有办法在5之后的第二个值上运行最大值。那么我会得到11个 我试图创建一个小版本的新列表,并在上面应用max 但它在5之后只显示一

我有一个类似的列表:

list =  [u'5.0', u'5.1', u'5.2', u'5.3', u'5.4', u'5.5', u'5.6', u'5.7', u'5.8', u'5.9', u'5.10', u'5.11'
我正在努力获得5后的最高数字。含义5.11

我不能在这里使用max函数,因为它将返回5.9

i、 e

结果将是5.9而不是5.11

是否有办法在5之后的第二个值上运行最大值。那么我会得到11个

我试图创建一个小版本的新列表,并在上面应用max 但它在5之后只显示一个字符。也许有更好的办法

for minor in list:
    print(minor[2])

0
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
就这么做吧:

list =  [u'5.0', u'5.1', u'5.2', u'5.3', u'5.4', u'5.5', u'5.6', u'5.7', u'5.8', u'5.9', u'5.10', u'5.11']
minor_list = [int(i[2:]) for i in list]
print("5." + str(max(minor_list))) # should work

for item in list:
    print(item[2:])
请参见

只需这样做:

list =  [u'5.0', u'5.1', u'5.2', u'5.3', u'5.4', u'5.5', u'5.6', u'5.7', u'5.8', u'5.9', u'5.10', u'5.11']
minor_list = [int(i[2:]) for i in list]
print("5." + str(max(minor_list))) # should work

for item in list:
    print(item[2:])

请参见

首先在
'上拆分每个字符串,然后取第二部分,即可仅比较(相应浮点数的)小数部分。

print(max(lst, key=lambda x: int(x.split('.')[1])))
# 5.11
如果整数部分不相同,您可以先比较这些部分,然后使用小数部分来打破僵局:

max(lst, key=lambda x: tuple(map(int, x.split('.'))))


通过首先在
”上拆分每个字符串,然后取第二部分,可以仅比较(相应浮点数的)小数部分。

print(max(lst, key=lambda x: int(x.split('.')[1])))
# 5.11
如果整数部分不相同,您可以先比较这些部分,然后使用小数部分来打破僵局:

max(lst, key=lambda x: tuple(map(int, x.split('.'))))


我猜是因为9大于1。如果需要不同的行为,您可能需要创建自己的比较器函数。我猜是因为9大于1。如果您需要不同的行为,您可能需要创建自己的比较器函数。但这只适用于5位小数。如果数据为
list=['4.123','5.009']
,则可能会失败wrong@chakri更新。但这仅适用于5位小数。当数据为
list=['4.123','5.009'时,可能会失败
如果我不是wrong@chakri更新。解释代码通常比粘贴和发布更有用。解释代码比粘贴和发布更有用。