循环创建嵌套的字典
Loop creating nested dicts
我正在从 CSV 导入数据并将其放入嵌套字典中。
我当前的密钥检查如下所示:
data = {}
[...]
if day not in data:
data[day] = {}
if hour not in data[day]:
data[day][hour] = {}
if user in data[day][hour]:
worked_time += (
data[day][hour][user]['worked_time']
)
data[day][hour][user] = {
'name': users[user]['name'],
'worked_time': worked_time
}
每个人可以是几个用户data[day][hour]
想知道是否有比使用多个 ifs
更好的方法来检查每个 key
是否存在。
collections.defaultdict
不错。如果字典没有您指定的键值,它会为您创建一个新值。
from collections import defaultdict
data = defaultdict(lambda: defaultdict(lambda: defaultdict(dict)))
data['day']['hour']['user']['worked_time'] = 2
我正在从 CSV 导入数据并将其放入嵌套字典中。 我当前的密钥检查如下所示:
data = {}
[...]
if day not in data:
data[day] = {}
if hour not in data[day]:
data[day][hour] = {}
if user in data[day][hour]:
worked_time += (
data[day][hour][user]['worked_time']
)
data[day][hour][user] = {
'name': users[user]['name'],
'worked_time': worked_time
}
每个人可以是几个用户data[day][hour]
想知道是否有比使用多个 ifs
更好的方法来检查每个 key
是否存在。
collections.defaultdict
不错。如果字典没有您指定的键值,它会为您创建一个新值。
from collections import defaultdict
data = defaultdict(lambda: defaultdict(lambda: defaultdict(dict)))
data['day']['hour']['user']['worked_time'] = 2