nx.short_path_lengthを使用して、辞書型で取得したノード毎の  
始点からの距離を、リストとして抽出したいのですが、以下のコードだと  
エラーが出てしまいました。どうしたらよいでしょうか？

```

    d=nx.shortest_path_length(G,source="一般顧客",target=None)
    f=list(d.values())
    node_color=[f[node] for node in G.nodes()]
    node_color
    
```

```

    TypeError                                 Traceback (most recent call last)
    <ipython-input-44-3dc896932224> in <module>
          1 d=nx.shortest_path_length(G,source="一般顧客",target=None)
          2 f=list(d.values())
    ----> 3 node_color=[f[node] for node in G.nodes()]
          4 node_color
    
    <ipython-input-44-3dc896932224> in <listcomp>(.0)
          1 d=nx.shortest_path_length(G,source="一般顧客",target=None)
          2 f=list(d.values())
    ----> 3 node_color=[f[node] for node in G.nodes()]
          4 node_color
    
    TypeError: list indices must be integers or slices, not str
    
```
CC BY-SA 4.0
2020-03-25T06:13:58.533
64102
2020-03-27T23:28:55.180
2020-03-25T07:56:43.523
19110
38030
question
python
ディクショナリの要素のリスト化
まず

```

    G.nodes()
    
```

の中身を確認してください。要素が文字列になっていませんか？  
そのためにf[node]でエラーになっています。

場合によっては、辞書のdをそのまま使って

```

    node_color = [d[node] for node in G.nodes()]
    
```

でも希望の値が得られるかもしれません。
CC BY-SA 4.0
2020-03-27T23:28:55.180
64168
2020-03-27T23:28:55.180
35708
64102
answer