dict , reduce :
>>> l=[('New Model','v7','k1',0.1),
... ('New Model','v8','k2',0.2),
... ('New Model','v8','k3',0.3)]
>>>
>>> [reduce(lambda x,y:{y:x},p) for p in [i[1:][::-1] for i in l]]
[{'v7': {'k1': 0.1}},
{'v8': {'k2': 0.2}},
{'v8': {'k3': 0.3}}]
:
>>> l=[('New Model','v7','k1',0.1,'c','5','r',9),
... ('New Model','v8','k2',0.2,'d','6'),
... ('New Model','v8','k3',0.3)]
>>> [reduce(lambda x,y:{y:x},p) for p in [i[1:][::-1] for i in l]]
[{'v7': {'k1': {0.1: {'c': {'5': {'r': 9}}}}}},
{'v8': {'k2': {0.2: {'d': '6'}}}},
{'v8': {'k3': 0.3}}]
: , - dict, :
>>> g=[reduce(lambda x,y:{y:x},p) for p in [i[1:][::-1] for i in l]]
>>> dict(next(i.iteritems()) for i in g)
{'v8': {'k3': 0.3}, 'v7': {'k1': {0.1: {'c': {'5': {'r': 9}}}}}}