У меня эта ошибка:
Traceback (most recent call last):
File (...)
edge = random.choice(graph[node])
TypeError: unhashable type: 'list'
Мой код выглядит следующим образом:
print(graph) # {'0': ['3'],
# '1': ['0'],
# '2': ['1', '6'],
# '3': ['2'],
# '4': ['2'],
# '5': ['4'],
# '6': ['5', '8'],
# '7': ['9'],
# '8': ['7'],
# '9': ['6']}
visited = {}
node = random.choice(list(graph.keys()))
print(node) # '9' for example
# edge = random.choice(graph[node]) ---> this prints ['6'] but fails inside the loop
while True:
edge = random.choice(graph[node]) # this is where it breaks
if node not in visited:
visited[node] = [edge]
else:
if visited[node] == edge:
break
else:
visited[node].append(edge)
if visited[node]==graph[node]:
break
node = graph[edge]
print(visited)
Я просмотрел другие ответы, и все они пытаются проиндексировать dict со списком, но node
- строка, которая должна работать. Код прямо над l oop работает, и я даже пробовал с другим условием l oop. Я пытаюсь получить случайный ключ, а затем получить его значение (пытаюсь случайным образом пройти по ориентированному графику). Спасибо!