-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 (如this answer所示):

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 回答