Get: TypeError: 'dict_values' オブジェクトは、Python 3.2.3 を使用している場合はインデックスをサポートしていません [重複] 質問する

Get: TypeError: 'dict_values' オブジェクトは、Python 3.2.3 を使用している場合はインデックスをサポートしていません [重複] 質問する

これが私のコードです:

{names[i]:d.values()[i] for i in range(len(names))}

これは、Python 2.7.3 を使用する場合にはまったく問題なく動作しますが、Python 3.2.3 を使用すると、エラーが発生します'dict_values' object does not support indexing。コードを変更して 3.2.3 と互換性を持たせるにはどうすればよいでしょうか?

ベストアンサー1

Python 3では、dict.values()(およびとともにdict.keys()dict.items()viewリストではなく を返します。ドキュメントを参照してください。ここしたがって、 への呼び出しをdict.values()への呼び出しでlist次のようにラップする必要があります。

v = list(d.values())
{names[i]:v[i] for i in range(len(names))}

おすすめ記事