gpt4 book ai didi

python-3.x - 类型错误 : '<' not supported between instances of 'str' and 'int' in version numbers

转载 作者:行者123 更新时间:2023-12-05 04:00:58 26 4
gpt4 key购买 nike

我有以下代码会引发错误,我不明白为什么会这样,如果您将项目“2.0.8”更改为“2.1.8”,错误就会消失。即使您将项目“2.0.8”更改为“3.1.8”,它也能正常工作,有什么建议吗?

from distutils.version import LooseVersion
versions_list = ['2.5.6.RC02', '2.0.8', '2.0-m2']
versions_list.sort(key=LooseVersion, reverse=False)

print(versions_list)

TypeError: '<' 在 'str' 和 'int' 的实例之间不被支持

最佳答案

是的。第一个不相关 - 最后两个足以证明问题。

sorted(['2.1.8', '2.1-m2'], key=LooseVersion)  # fails
sorted(['8', 'm2'], key=LooseVersion) # fails

一种解释 TypeError 的方法是“两个版本不可比”,即一个或另一个应该先出现是不确定的。

我们正在进行三个比较: 2 == 2 , 1 == 1 ,最后我们想知道如何8'm2' 比较.最后一个是事情分崩离析的地方。请注意,我们不按 ASCII 顺序进行比较,因为我们真的想要9 < 11而不是相反。整数比较与字符串比较完全不同。当您调整它以显示 0 时或 1在中间,你短路了比较程序,允许它在检查所有组件之前报告答案。

如果抓到TypeError报告“不确定”对你来说不够好,那么我想我会建议清理版本组件在将它们交给 LooseVersion 之前.

关于python-3.x - 类型错误 : '<' not supported between instances of 'str' and 'int' in version numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55735777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com