最近,我正在研究基于Python的项目,并面临字典问题。在PHP中,我可以通过以下指令轻松创建多维数组:
$user = "Tom";
$type = "New";
$userlist[$user]['count'] += 1;
$userlist[$user][$type] += 1;
如果数组不存在,PHP将在数组中创建一个新元素,这对编码非常方便。 Python字典可以提供与PHP相同且方便的功能吗?
答案 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