Python字典可以像PHP数组一样方便吗?

时间:2012-07-03 22:20:16

标签: php python

最近,我正在研究基于Python的项目,并面临字典问题。在PHP中,我可以通过以下指令轻松创建多维数组:

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

如果数组不存在,PHP将在数组中创建一个新元素,这对编码非常方便。 Python字典可以提供与PHP相同且方便的功能吗?

2 个答案:

答案 0 :(得分:4)

Python不像PHP那样神奇地实例化字典;但是,通过一些预见,你可以做到你想要的。

from collections import defaultdict, Counter

users = defaultdict(Counter)

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

(另外,当它不是列表时调用变量“somethinglist”可能是一个坏主意,而type是一个Python关键字,所以不要将它用作变量名!)

答案 1 :(得分: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