from functools import partial
def lookup(table, values):
try:
return list(map(partial(lookup, table), values))
except TypeError:
return table[values]
l = [4,2,1,0,3]
l_of_l = [[0,3],[4,1,2,3],[2,4],4]
print(lookup(l, l_of_l))
ZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKCmRlZiBsb29rdXAodGFibGUsIHZhbHVlcyk6CiAgICB0cnk6CiAgICAgICAgcmV0dXJuIGxpc3QobWFwKHBhcnRpYWwobG9va3VwLCB0YWJsZSksIHZhbHVlcykpCiAgICBleGNlcHQgVHlwZUVycm9yOgogICAgICAgIHJldHVybiB0YWJsZVt2YWx1ZXNdCgoKbCA9IFs0LDIsMSwwLDNdCmxfb2ZfbCA9IFtbMCwzXSxbNCwxLDIsM10sWzIsNF0sNF0KCnByaW50KGxvb2t1cChsLCBsX29mX2wpKQ==