在这个页面上,我看到一些有趣的东西:
请注意,有一个快速路径的dicts(实际上)只处理str键; 这不会影响算法的复杂性,但它会显着影响常数因素:典型程序的完成速度.
那究竟是什么意思呢?
这是否意味着使用字符串,因为键总是更快?
如果是,为什么?
更新:
感谢有关优化的建议!但实际上我对真实性更感兴趣,而不是我们是否应该进行优化.
更新2:
感谢您的回答,我将引用@DaveWebb提供的链接中的内容:
"......
ma_lookup最初设置为lookdict_string函数(在3.0中重命名为lookdict_unicode),它假定字典中的键和要搜索的键都是标准的PyStringObject.然后,它可以进行一些优化,例如减轻各种错误检查,因为字符串到字符串的比较从不引发异常.也不需要进行富对象比较,这意味着我们避免调用PyObject_RichCompareBool,并且总是直接使用_PyString_Eq.
......"
此外,对于实验数字,我认为如果没有int-to-string转换,差异的大小将更大
python ×1