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