파이썬에서 다차원 사전을 사용하려고합니다. 필자의 경우 다음과 같은 구조를 사용해야합니다.파이썬에서 다차원 사전을 사용하는 방법
MyDict[domain][IPAddress][UserAgent1, UserAgent2, UserAgent3, ....]
이 구조에서 각 키는 String이고 마지막 값은 벡터에 있습니다. 나는 처음 삽입이 코드를 사용하고 있습니다 :
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
은 또한, 나는이 구조를 반복 할 필요가있다. 이 구조체를 구현하는 방법과 반복적 인 방법을 알고 있습니까? 난 당신이 반복에 표시 할 정확하게 명확하지 않다
if domain not in MyDict:
MyDict[domain] = {}
if IPAddress not in MyDict[domain]:
MyDict[domain][IPAddress] = []
if UserAgent1 not in MyDict[domain][IPAddress]:
MyDict[domain][IPAddress].append(UserAgent1)
, 그러나 이것은 얻어야한다 :
, 당신은 할 수 있습니다 모든 dicts가 가지고있는'setdefault' 메쏘드를 사용하여 코드를 줄이십시오. – ThiefMaster