Как определить и заполнить диктат списков - PullRequest
3 голосов
/ 07 июля 2011

Я должен заполнить словарь типа:

partial[sequence][exp_id] = [item_1, ..., item_n]

это можно сделать следующим образом:

partial = defaultdict(dict)

for sequence in sequences:
   for exp_id in exp_ids:
       for item in data:
           partial[sequence].setdefault(eid, []).append(item)

Есть ли более эффективный способ? Что-то вроде:

partial = defaultdict(defaultdict(list))

for sequence in sequences:
   for exp_id in exp_ids:
       for item in data:
          partial[sequence][exp_id].append(item)

было бы идеально, но, к сожалению, не работает, потому что defaultdict хочет вызвать в качестве первого аргумента

Ответы [ 2 ]

6 голосов
/ 07 июля 2011

попробовать:

partial = defaultdict(lambda: defaultdict(list))
6 голосов
/ 07 июля 2011
partial = defaultdict(lambda: defaultdict(list))
...