Can Python dictionaries to be as handy as PHP array?
Recently, I'm working on a Python-based project and facing a issue with dictionaries. In PHP I can easily create a multiple dimension array by the following instruction:
$user = "Tom"; $type = "New"; $userlist[$user]['count'] += 1; $userlist[$user][$type] += 1;
PHP will create a new element within an array if it doesn't exist, which is very convenient for coding. Can Python dictionaries provide the same and handy function as PHP?
Python does not magically instantiate dictionaries as PHP does; however, with a bit of forethought, you can make it do what you want.
from collections import defaultdict, Counter users = defaultdict(Counter) users['Tom']['Count'] += 1 users['Tom']['New'] += 1
(also, calling a variable "somethinglist" when it's not a list is probably a bad idea, and type is a Python keyword, so don't use it as a variable name either!)
You can use Python's defaultdict (as this answer suggests):
from collections import defaultdict user = "Tom" type = "New" userlist = defaultdict(lambda: defaultdict(int)) userlist[user]['count'] += 1 userlist[user][type] += 1