仅用C语言可以构造出Python中Dict那种数据结构吗?
程序员文章站
2022-04-01 16:54:42
...
查找,插入,删除的时间复杂度能一样不?
cpython/dict-common.h at master · python/cpython · GitHub
cpython/dictobject.c at master · python/cpython · GitHub Python就是用c实现的,你说可以不可以?
另外,c实现的这种哈希表+链表的二维数据结构,其实也有实例:memcached中的缓存就是同一种数据结构。
只不过,在python里面,链表用于维持有序性(foreach/push/pop的时候用到),而mc中,链表则用于淘汰算法LRU。 没有c语言干不了的活,只有适合不适合。 当然可以,官方的Python就是C语言实现的。从另一方面讲,这两门语言是图灵等价的,所以是可以的。 Python一般就是CPython,它的Dict不就是c写的吗 这和是什么语言没关系吧,只要这个语言是图灵完备的就可以,当然难易程度另说 你需要Python源码剖析 (豆瓣)
回复内容:
CPython的dict就是用纯C实现的嗯:cpython/dict-common.h at master · python/cpython · GitHub
cpython/dictobject.c at master · python/cpython · GitHub Python就是用c实现的,你说可以不可以?
另外,c实现的这种哈希表+链表的二维数据结构,其实也有实例:memcached中的缓存就是同一种数据结构。
只不过,在python里面,链表用于维持有序性(foreach/push/pop的时候用到),而mc中,链表则用于淘汰算法LRU。 没有c语言干不了的活,只有适合不适合。 当然可以,官方的Python就是C语言实现的。从另一方面讲,这两门语言是图灵等价的,所以是可以的。 Python一般就是CPython,它的Dict不就是c写的吗 这和是什么语言没关系吧,只要这个语言是图灵完备的就可以,当然难易程度另说 你需要Python源码剖析 (豆瓣)