是否保证只调用一次python排序键?

时间:2012-11-15 04:23:52

标签: python sorting

在回答another question时,我最终创建了一个sortkey函数,该函数修改了一个字典以便保存状态,然后该状态将用于排序中的后续项目。

虽然我的回答似乎 ,但我的问题是:在python文档中是否实际定义了每个对象只调用一次sort-key?这是Cpython的实现细节吗?或者实际上是不是一次调用了排序键,我只是运气不好才得到正确的答案?

sorted州的文件:

  

key指定一个参数的函数,该函数用于从每个列表元素中提取比较键:key = str.lower。默认值为None(直接比较元素)

我不认为这意味着key每个元素只会被调用一次......但是可以在其他地方说明。

显然我问,因为这会对任何有副作用的排序键产生影响。

1 个答案:

答案 0 :(得分:11)

从您链接的文档部分:

  

通常,键和反向转换过程比指定等效的cmp函数快得多。这是因为对于每个列表元素多次调用cmp,而键和反向触摸每个元素只有一次

这似乎是“是”......

相关问题