2017-09-18 2 views
0

pour une raison quelconque, je ne peux pas trouver cet exemple Je veux trier les numéros de version bien. par exemple [v2, v10, v1] à [v1, v2, v10] J'ai vraiment seulement besoin du maximum mais je ne trouve rien pour ça non plus.trier joliment la version avec des lettres et des chiffres

+0

est 'v2.1' valide? Qu'en est-il de 'v2.1.1', etc.? –

Répondre

2

Ne réinventez pas la .whl, vous pouvez utiliser pkg_resources

parse_version(version) analysables la chaîne de version d'un projet tel que défini par PEP 440. La valeur renvoyée sera un objet qui représente la version. Ces objets peuvent être comparés entre eux et triés.

Démo:

>>> from pkg_resources import parse_version 
>>> data = ['v2', 'v10', 'v1', 'v2.1', 'v2.1.1'] 
>>> sorted(data, key=parse_version) 
['v1', 'v2', 'v2.1', 'v2.1.1', 'v10'] 

Vous pouvez également passer comme la clé pour trouver la dernière version:

>>> max(data, key=parse_version) 
'v10'