【发布时间】:2025-12-13 06:35:01
【问题描述】:
我在尝试分配邻居时收到错误 unhashable type: 'dict'
graphs = networkx.erdos_renyi_graph(10, 0.5)
pos = random.choice(graphs.nodes())
neighbors = graphs.neighbors(pos)
TypeError Traceback (most recent call last)
<ipython-input-97-f39c9dfc00ff> in <module>()
1 graphs = networkx.erdos_renyi_graph(10, 0.5)
2 pos = random.choice(graphs.nodes())
----->3 neighbors = graphs.neighbors(pos)
/usr/local/lib/python3.7/dist-packages/networkx/classes/graph.py
in neighbors(self, n)
1251
1252 try:
-> 1253 return iter(self._adj[n])
1254 except KeyError as e:
1255 raise NetworkXError(f"The node {n} is not in the
graph.") from e
TypeError: unhashable type: 'dict'
我该如何解决这个问题? 谢谢。
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
-
也许先用
print()看看你在变量中有什么。 -
当我运行它时,
pos是空字典。你期望在pos中得到什么?也许您应该使用if/else来检查pos并跳过graphs.neighbors(pos)-if pos: neighbors = graphs.neighbors(pos) else: neighbors = []
标签: python function dictionary networkx