【发布时间】:2021-01-07 22:01:15
【问题描述】:
问题
我生成了一个chimera 图形,它基本上是一个dwave_networkx 对象。 dwave_networkx 继承自 networkx 图形类。我将它存储在 Python 架子中。原始图的哈希值和从架子上检索到的哈希值不同,我不知道为什么。我要求两者相同。
代码
import dwave_networkx as dnx
import shelve
def generate_graph(N):
graph = dnx.chimera_graph(1, N, 4)
graph_id = ""
for node in graph.nodes:
graph.nodes[node]['weight'] = _get_node_weight() # A function that returns a random number
for edge in graph.edges:
graph.edges[edge]['weight'] = _get_edge_weight() # A function that returns a random number
graph_id = str(hash(graph))
return graph, graph_id
shelf = shelve.open("graphs.shelf")
ids = []
for i in range(10):
graph, id = generate_graph(5)
ids.append(id)
shelf[id] = {"graph": graph}
for i in ids:
print(i, hash(shelf[i]["graph"])
# The two values in each row turn out to be different!
shelf.close()
这可能是什么原因?
【问题讨论】:
标签: python-3.x dictionary hash persistence networkx