PikaPython icon indicating copy to clipboard operation
PikaPython copied to clipboard

字典的实现似乎有问题

Open blueloveTH opened this issue 2 years ago • 3 comments

commit id:893972bf4f7f8d65e1d01acf22c574cadf176bc4 系统:linux

pika

~~~/ POWERED BY \~~~
~  pikascript.com  ~
~~~~~~~~~~~~~~~~~~~~
hello pikascript
>>> x = {}
>>> x["a635000"] = 1
>>> x["a10000751"] = 2
>>> x
{'a10000751': 2}
>>> 

>>> a635000 = 'hello'
>>> a635000
'hello'
>>> a10000751 = 123
>>> a635000  # 写入了错误的变量
123
>>> 

cpython

>>> x = {}
>>> x["a635000"] = 1
>>> x["a10000751"] = 2
>>> x
{'a635000': 1, 'a10000751': 2}
>>>

blueloveTH avatar Aug 12 '23 19:08 blueloveTH

另外字典某些操作(例如删除)的时间复杂度似乎是O(n),而不是O(1)

blueloveTH avatar Aug 12 '23 19:08 blueloveTH

你这是找了两个times33 hash冲突的字串吗,目前确实没有处理hash冲突,另外复杂度确实是O(n)

pikasTech avatar Aug 13 '23 03:08 pikasTech

还有

a = {}
b = ["1"]
a[b[0]] = 2

没记错的话这个会报一个setitem not defined的错误

blueloveTH avatar Aug 13 '23 03:08 blueloveTH