我试图在python中使用多维字典。就我而言,我需要使用的结构是这样的:如何在python中使用多维字典
MyDict[domain][IPAddress][UserAgent1, UserAgent2, UserAgent3, ....]
在这个结构中每个键是一个字符串,最后的值是在载体中。我使用此代码为先插入:
from collections import defaultdict
MyDict= defaultdict(lambda: defaultdict(lambda: defaultdict(3)))
if domain not in MyDict:
MyDict[domain] = []
if IPAddress not in MyDict[domain]:
MyDict[domain].append(IPAddress)
if UserAgent1 not in MyDict[domain][IPAddress]:
MyDict[domain][IPAddress].append(UserAgent1)
但是这个代码不适用于此错误的工作:
Traceback (most recent call last):
File "/.../Main.py", line 33, in <module>
if UserAgent1 not in MyDict[domain][IPAddress]:
TypeError: list indices must be integers, not str
此外,我需要遍历这个结构。你知道如何实现这个结构以及迭代它们的最佳方式吗?
仅供参考,你可以通过使用所有字典所具有的'setdefault'方法来缩短代码。 – ThiefMaster 2014-11-06 08:05:44