关于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类型数据。

0
3
咚咚呛
你这里是不是node.prev置为int型了
2020-05-27
共3条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程