Python O(1)成员数据访问可能吗?
发布时间:2020-12-20 11:17:47 所属栏目:Python 来源:网络整理
导读:在C中,为了访问“命名”成员数据,我们不断做: const unsigned int CHEESE_CAKE = 0;const unsigned int CHOCOLATE_CAKE = 1;...const unsigned int CHERRY_PIE = 1050; 然后,当我们想要访问与字符串匹配的某些特定资源时,我们可以简单地执行: mResource[My
在C中,为了访问“命名”成员数据,我们不断做:
const unsigned int CHEESE_CAKE = 0; const unsigned int CHOCOLATE_CAKE = 1; ... const unsigned int CHERRY_PIE = 1050; 然后,当我们想要访问与字符串匹配的某些特定资源时,我们可以简单地执行: mResource[MyClass::CHEESE_CAKE]; // constant time O(1) access 我试图以类似的方式在python中执行此操作: class MyClass: MY_CLASS_DATA1 = someData(1) MY_CLASS_DATA2 = someData(1) 但根据我的理解,python的成员函数存储在__dict__中,这实际上是一个给出O(logn)查找时间的哈希映射. 有没有办法像在C中那样在python中实现O(1)性能,或者由于python的动态特性,这是不可能的? 解决方法
适当的哈希表实现提供了分摊的O(1)查找时间.当您提到O(log n)时间时,您正在考虑二叉搜索树. Python名称查找是O(1).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |