按键列出组中的元素

Pro*_*e85 2 python

假设我有以下列表:

mylist = [keyobj1, valobj1, valobj2, keyobj2, valobj1, valobj2, valobj3,...]
Run Code Online (Sandbox Code Playgroud)

我希望得到一个包含以下内容的词典:

mydict = {keyobj1: [valobj1, valobj2], keyobj2: [valobj1,valobj2,valobj3, ...}
Run Code Online (Sandbox Code Playgroud)

有没有执行此任务的库?

下面是要执行的粗略算法(我知道,看起来很难看):

# convert mylist to iterator
mylist = iter(mylist)
n = mylist.next()
while True:
     try:
         if not iskey(n):
             n = mylist.next()
             value_list.append(n)
         else:
             mydict[key] = value_list
             value_list = []
             key = n
             n = mylist.next()
     except StopIteration:
         mydict[key] = value_list
         break
Run Code Online (Sandbox Code Playgroud)

Joh*_*nck 5

我这样做:

mydict = defaultdict(list)
sublist = None
for item in mylist:
    if iskey(item):
        sublist = mydict[item]
    else:
        sublist.append(item)
Run Code Online (Sandbox Code Playgroud)

我想要使​​用的唯一库是collectionsfor defaultdict.