1

次のような辞書を作成しようとしていますn == 3

{
  0: [1, 2],
  1: [0, 2],
  2: [0, 1]
}

基本的に..マップされたものを除く他のキー整数を含む配列にマップされたキーを持つ単なる辞書。私のコード:

import itertools

graph = {i: range(num_nodes) for i in range(num_nodes)}

for i in graph.keys():
    graph[i].remove(i)

このエラーがスローされる理由がわかりませんValueError: list.remove(x): x not in list

もう少し調査した結果、セット間で減算を実行して、すべてを一度に実行できることがわかりました。

graph = {i: list(set(range(num_nodes)) - set([i])) for i in range(num_nodes)}

みんなありがとう!

4

3 に答える 3

2

それは でtype(graph[i])はないためです。listタイプはrangeです。それをリストに変換して、これを試してください:

[編集: 減算を削除、sgarza62 のコメントを確認]

import itertools    

graph = {i: list(range(num_nodes)) for i in range(num_nodes)}

for i in graph.keys():
    graph[i].remove(i)
于 2014-09-02T21:01:02.080 に答える