Python:对列表进行排序,使 5.10 在 5.9 之后

Nat*_*TRO -1 python sorting sections

你会如何对像 5.1, 5.2, 5.3,... 5.10,5.11 这样的数字列表进行排序,而不是在 Python 中将 5.10 和 5.11 放在 5.1 之后。我基本上希望 python 意识到我实际上不是指 5.10,而是第 5 节,第 10 小节。

ala*_*ani 5

您可以像对待版本号一样对待它,例如:

>>> from distutils.version import LooseVersion

>>> a = ["5.1", "5.10", "5.11", "5.2"]

>>> sorted(a, key=LooseVersion)
['5.1', '5.2', '5.10', '5.11']
Run Code Online (Sandbox Code Playgroud)

这里的假设是您拥有字符串形式的数据。(将 5.1 和 5.10 区分为浮点数是没有意义的。)

  • 我认为我们无法给出比这更好的答案。 (2认同)