2017-06-09 19 views
-3

これはコードです // get_sensor_statsは辞書を返します。pythonで辞書の最大値を取得しようとしたときにエラーが発生する

static_sensors_stats = get_sensor_stats() 
key_max = max(static_sensors_stats.keys(), key=(lambda k: static_sensors_stats[k])) 
print('Maximum Value: ',static_sensors_stats[key_max],'Maximum Value Key: ',key_max) 



key_max = max(static_sensors_stats.keys(), key=(lambda k: static_sensors_stats[k])) 
    AttributeError: 'list' object has no attribute 'keys' 

    During handling of the above exception, 

キーは標準機能ではありませんか?この権利の使い方

+0

私の辞書の名前はstatic_sensors_statsです。 – Zuckerberg

+4

'static_sensors_stats'はリストであり辞書ではありません。 –

+0

@MartijnPieters - 辞書を返す関数の戻り値を使ってstatic_sensors_statsを設定しています。どうすればstatic_sensors_stats辞書を作成できますか? dict(static_sensors_stats)はそれを行いますか? – Zuckerberg

答えて

1

static_sensors_statsオブジェクト(リスト)に最大値を設定する場合は、max(static_sensors_stats)を使用できます。

辞書のキーの最大値を取得する場合は、max(dictionaryname.keys())を使用できます。

辞書の値の最大値を取得する場合は、max(dictionaryname.values())を使用できます。

すべての場合、max()関数はリスト上で動作しています。

+0

私の例のように、戻り値を別の変数に設定すると辞書がリストに変換されますか? – Zuckerberg

+0

あなたの質問では 'static_sensors_stats'オブジェクトは辞書だと言っていますが、あなたのエラーメッセージはMartijnがコメントした通りに' list'であることを伝えています。これは 'type(static_sensors_stats)'を使ってテストできます。 – BHawk

関連する問題