【发布时间】:2014-05-31 06:54:15
【问题描述】:
在回答another question 时,我最终创建了一个排序键函数,该函数修改了一个字典以保存状态,然后该状态将用于排序中的后续项目。
虽然我的回答 似乎 有效,但我的问题是:python 文档中是否真的定义了每个对象只能调用一次排序键?这是 Cpython 的实现细节吗?或者排序键实际上被调用了不止一次,而我得到正确答案只是出于运气?
sorted 的文档指出:
key 指定一个参数的函数,用于从每个列表元素中提取比较键:key=str.lower。默认值为None(直接比较元素)
我不认为这意味着 key 每个元素只会被调用一次......但它可以在其他地方说明。
显然我会问,因为这会对任何有副作用的排序键产生影响。
【问题讨论】: