关于map的用法
来源:5-7 实现LRU缓存置换算法

慕妹626757
2020-05-26
node = self.map.get(key)和node = self.map[key]
返回值应该是一个Node的实例,但是我在LRUCache的get里面报错,打印type(node)之后显示是int类型。在FIFOCache中的get我直接返回了node而非node.value所以没有报错。
之前也一直理解不了map[key]为什么会得到一个Node的实例而非一个int,按理说字典里每一项都是key:value,最后应该得到value才对?
下面是报错信息:
Traceback (most recent call last):
File "LRUCache.py", line 50, in <module>
print(cache.get(1))
File "LRUCache.py", line 18, in get
self.list.remove(node)
File "..\DoubleLinkList.py", line 110, in remove
return self.__remove(node)
File "..\DoubleLinkList.py", line 94, in __remove
node.prev.next = node.next
AttributeError: 'int' object has no attribute 'next'
写回答
1回答
-
咚咚呛
2020-05-26
Python是弱类型语言,在put的时候什么类型都可以放进去,确认下put的时候是否由放进int类型数据。
032020-05-27
相似问题