Если я правильно понял, вы могли бы сделать:
list1 = [[0, 1], [1, 2], [3, 1]]
list2 = ["append", "values", "to", "one", "another"]
# create lookup tables (index, values)
lookup1 = {k : [k, v] for k, v in list1}
lookup2 = {i : v for i, v in enumerate(list2)}
merge = {lookup2[k] : v for k, v in lookup1.items()}
print(merge)
Выход
{'append': [0, 1], 'one': [3, 1], 'values': [1, 2]}
Обратите внимание, что это решение предполагает, что первые значения подсписковв list1
соответствуют показателям.