如何在Python中找到给定字符串列表中的最大浮点数值?

qxgroojn  于 2022-12-24  发布在  Python
关注(0)|答案(2)|浏览(159)

我有一个数据列表,其中包含一些字母数字内容。

list_data = ['version_v_8.5.json', 'version_v_8.4.json', 'version_v_10.1.json']

我想从列表中获取最高的元素“version_v_10.1.json”。

xeufq47z

xeufq47z1#

使用natsort排序,然后获取最后一个元素(最高版本)

from natsort import natsorted
list_data = ['version_v_8.5.json', 'version_v_8.4.json', 'version_v_10.1.json']
list_data = natsorted(list_data)
print(list_data.pop())

产出数量

version_v_10.1.json
tzdcorbm

tzdcorbm2#

您可以执行以下操作:

import re

list_data = [
    "version_v_8.5.json",
    "version_v_8.4.json",
    "version_v_10.1.json",
    "version_v_10.2.json",   ####
    "version_v_10.10.json",  ####
]

pat = re.compile(r"version_v_(.*).json")

print(max(list_data, key=lambda x: [int(i) for i in pat.match(x).group(1).split(".")]))

您感兴趣的数字是正则表达式r"version_v_(.*).json"的第一组。然后您需要拆分它以获得数字列表并将每个数字转换为int。最后,您基本上比较了整数列表,如[8, 5][8, 4][10, 1]等。
这样,它可以正确查找大于"version_v_10.2.json""version_v_10.10.json",因为它们是软件版本。

相关问题