Какой самый эффективный способ сжать два вложенных списка в одноуровневый словарь

например:

list1=['k1','k2','k3',['k4','k5',['k6','k7']]]
list2=['v1','v2','v3',['v4','v5',['v6','v7']]]

и я хочу объединить их в словарь следующим образом:

dict1={'k1':'v1','k2':'v2','k3':'v3','k4':'v4','k5':'v5','k6':'v6','k7':'v7'}

У меня есть способ сделать это, но я думаю, что это займет слишком много времени:

def mergeToDict(keyList, valueList):
    resultDict = {}
    for key, value in itertools.izip(keyList, valueList):
        if type(key) == list and type(value) == list:
            resultDict=dict(resultDict,**mergeToDict(key, value))
        elif type(key) != list and type(key) != dict and type(key) != tuple:
            resultDict[key] = value
    return resultDict

Есть ли идеи получше?

6
задан Roman Bodnarchuk 14 February 2012 в 13:54
поделиться