I have a simple list of components dict to install.
JavaScript
x
8
1
components = [
2
{"component1": "0.1"},
3
{"component2": "0.2"},
4
{"component1": "0.3"},
5
{"component1": "0.2"},
6
{"component2": "1.0"}
7
]
8
Components may be the same, but have different versions. I want to get a list of components with latest versions. So, expecting result is
JavaScript
1
5
1
latest_components = [
2
{"component1": "0.3"},
3
{"component2": "1.0"}
4
]
5
What is the best way to compare component to each other? I tried to solve it using bash, but it looks like crap, so I want to make it more readable using python.
Advertisement
Answer
One line. Works with multilevel versions (1.2.4.7…)
JavaScript
1
2
1
{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())}
2