por ejemplo:¿Cuál es la forma más eficiente de la cremallera de dos lista anidada a un diccionario solo nivel
list1=['k1','k2','k3',['k4','k5',['k6','k7']]]
list2=['v1','v2','v3',['v4','v5',['v6','v7']]]
y quiero unirlos a un diccionario de esta manera:
dict1={'k1':'v1','k2':'v2','k3':'v3','k4':'v4','k5':'v5','k6':'v6','k7':'v7'}
tengo una forma de hacerlo, pero creo que toma demasiado tiempo:
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
¿Hay alguna idea mejor?
Su solución se ve mejor que todas las respuestas a continuación. – jterrace