Python で辞書をリストに変換する方法は知っていますが、結果のリストの合計などを取得しようとすると、何らかの理由でエラーが発生します'dict_values' object is not subscriptable
。また、リスト内のいくつかの項目のみを合計する予定です。
dict = {A:1, B:2, C:3, D:4}
arr = dict.values()
the_sum = sum(arr[1:3])
よく調べてみると、結果のリストが印刷されるときに、dict_values(......)
削除できない出力が常に表示されることに気付きました。どうすればこれを回避できますか?
ベストアンサー1
python-3.X では、python-2.X で実行されていたようなオブジェクトdict.values
は返されません。python-3.x では、セットのようなオブジェクトが返され、そのアイテムを格納するためにハッシュ テーブルが使用されますが、これはインデックス作成には適していません。この機能は、ほとんどの属性をサポートすることに加えて、メンバーシップ チェック (演算子を使用) などの操作に非常に最適化されています。list
dict-value
set
in
リスト オブジェクトを取得する場合は、結果を関数に渡してリストに変換する必要がありますlist()
。
the_values = dict.values()
SUM = sum(list(the_values)[1:10])