реализовать сортировку для списка словарей, имеющих версии в качестве ключа в Python - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь использовать StrictVersion в приведенном ниже коде:

from distutils.version import StrictVersion
from operator import itemgetter

v = [{'ver': '1.1.12'},{'ver': '1.0.0'},{'ver': '1.3.3'},{'ver': '1.0.12'},{'ver': '1.0.2'}]
v.sort(key=itemgetter("ver"),reverse=True)

Это сортировка на основе версии с приведенным ниже кодом, но она неправильно сортируется в приведенном выше коде.

versions = ["1.1.2", "1.0.0", "1.3.3", "1.0.12", "1.0.2"]
versions.sort(key=StrictVersion,reverse=True)

Как использовать key=StrictVersion выше с ключом?Или есть альтернатива?.

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

все ключи одинаковы, как вы собираетесь сортировать ключи, когда все они одинаковы?

для той части версии, которую вы можете отсортировать, используя:

list_to_sort = ['1.1.4', '1.6.9', '1.1.2']
sorted(list_to_sort, key=lambda version: int(''.join(["%02X" % int(i) for i in version.split('.')]), 16))
1 голос
/ 25 сентября 2019
v.sort(key = lambda x:StrictVersion( x['ver']),reverse=True)
[{'ver': '1.3.3'},
 {'ver': '1.1.12'},
 {'ver': '1.0.12'},
 {'ver': '1.0.2'},
 {'ver': '1.0.0'}]
...