如何比较组件版本并在 python 字典列表中找到最新版本?



我有一个简单的组件列表要安装。

components = [
{"component1": "0.1"},
{"component2": "0.2"},
{"component1": "0.3"},
{"component1": "0.2"},
{"component2": "1.0"}
]

组件可能相同,但具有不同的版本。我想获取最新版本的组件列表。所以,预期的结果是

latest_components = [
{"component1": "0.3"},
{"component2": "1.0"}
]

比较组件的最佳方法是什么?我试图使用 bash 解决它,但它看起来像废话,所以我想使用 python 让它更具可读性。

一行。适用于多级版本 (1.2.4.7...(

{c:'.'.join(map(str,v)) for c,v in sorted([c,list(map(int, v.split('.')))] for l in components for c,v in l.items())}

实现此目的的示例可能是:

components = [
{"component1": "0.1"},
{"component2": "0.2"},
{"component1": "0.3"},
{"component1": "0.2"},
{"component2": "1.0"}
]
result = dict()
for d in components:
for key, value in d.items():
if key in result:
if float(result[key])<float(value):
result[key]=value
else:
continue
else:
result[key] = value
print(result)

此输出为:

{'component1': '0.3', 'component2': '1.0'}

最新更新