最近,我正在做一个基于 Python 的项目,并面临一个字典问题。在 PHP 中,我可以通过以下指令轻松创建多维数组:
$user = "Tom";
$type = "New";
$userlist[$user]['count'] += 1;
$userlist[$user][$type] += 1;
如果数组不存在,PHP 会在数组中创建一个新元素,这样编码非常方便。Python 字典能否提供与 PHP 相同且方便的功能?
Python 并不像 PHP 那样神奇地实例化字典。但是,只要稍加考虑,您就可以让它为所欲为。
from collections import defaultdict, Counter
users = defaultdict(Counter)
users['Tom']['Count'] += 1
users['Tom']['New'] += 1
(另外,当它不是一个列表时调用一个变量“somethinglist”可能是个坏主意,它type
是一个 Python 关键字,所以也不要将它用作变量名!)
您可以使用 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