编辑:对于所有偏执狂来说,复制代码不再使用eval。你知道吗
我不会说我在Python中发现了一个bug(这会让我立刻被否决),但这是一个非常奇怪的行为。我有一个列表pairs
,并用一个不改变状态的自定义key
函数对其调用sort
。然后我取pairs
的一个子集(以相同的顺序),用相同的键函数再次调用sort
。结果与原始子集不同。这可能吗?你知道吗
我已经为你们提供了一份复印件。准备步骤:
下载所有4个文件(dpd.txt
、index_map.txt
、ids.txt
和weirdsortbehavior.py
),并将它们放在同一目录中
运行Python程序(注意:对于python3,还没有对python2进行测试)。对我来说是打印出来的
0 1916
1 0
对此有何解释?我能做些什么来修复它?谢谢。你知道吗
我想我找到原因了。那是因为在
dpd.txt
中有一些nan
。你知道吗和
nan
无法比较:float('nan') > 1 # False
而float('nan') < 1 # False
所以这完全打破了对比。你知道吗
如果将键比较功能更改为:
会有用的。你知道吗
相关问题 更多 >
编程相关推荐