首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Networkx不可散列类型:'dict‘

Networkx不可散列类型:'dict‘
EN

Stack Overflow用户
提问于 2021-11-09 18:42:20
回答 1查看 40关注 0票数 1

当我尝试分配邻居时,我得到一个错误的unhashable类型:‘dict

代码语言:javascript
运行
复制
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'

我该如何解决这个问题?谢谢。

EN

Stack Overflow用户

发布于 2021-11-09 19:04:18

我并不熟悉networkx NodeDataView对象(您的graphs.nodes())的所有错综复杂之处,但the documentation中的注释和示例建议您只需转换为list即可访问节点以进行序列类型的操作。

下面的代码对我来说是正常的,没有任何错误。

代码语言:javascript
运行
复制
import networkx
import random

graphs = networkx.erdos_renyi_graph(10, 0.5)
pos = random.choice(list(graphs.nodes))
neighbors = graphs.neighbors(pos)

另外,由于变量名pos的另一个典型含义是kwarg which specifies node coordinates for plotting in networkx,因此最好使用另一个变量名以防止混淆。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69903445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档