-1

最近、私は Python ベースのプロジェクトに取り組んでおり、辞書に関する問題に直面しています。PHP では、次の命令で多次元配列を簡単に作成できます。

$user = "Tom";
$type = "New";
$userlist[$user]['count'] += 1;
$userlist[$user][$type] += 1;

配列が存在しない場合、PHP は配列内に新しい要素を作成します。これは、コーディングに非常に便利です。Python 辞書は PHP と同じ便利な機能を提供できますか?

4

2 に答える 2

4

Python は、PHP のように魔法のように辞書をインスタンス化するわけではありません。ただし、少し前もって考えておくことで、希望どおりに動作させることができます。

from collections import defaultdict, Counter

users = defaultdict(Counter)

users['Tom']['Count'] += 1
users['Tom']['New'] += 1

(また、リストではない変数を「somethinglist」と呼ぶのはおそらく悪い考えでありtype、Python のキーワードなので、変数名としても使用しないでください!)

于 2012-07-03T22:36:07.613 に答える
2

Python の defaultdict を使用できます (この回答が示唆するように):

from collections import defaultdict
user = "Tom"
type = "New"
userlist = defaultdict(lambda: defaultdict(int))
userlist[user]['count'] += 1
userlist[user][type] += 1
于 2012-07-03T22:31:40.977 に答える