Sagen wir, ich habe zwei durch eine andere Funktion erzeugt Listen:Wie konvertiert man eine Liste mit doppelten Werten in ein Wörterbuch mit einer Liste als Wert?
test = [[0, 1], [0, 2], [1, 5], [1,6], [2, 0], [3, 99], [3, 89], [3, 79]]
test2 = [[1, 4], [4, 1]]
Ich möchte, dass sie konvertieren Arrays für die schnelle Suche auf assoziative wie so:
test: {0: [1, 2], 1: [5,6], 2: [0], 3: [99, 98, 97]}
test2: {1: [4], 4: [1]}
ich es wie folgt tun:
def list_to_dict(my_list):
last_val = my_list[0][0]
temp = []
my_dict = {}
for i in my_list:
if last_val == i[0]:
temp.append(i[1])
else:
#add the values to this key
my_dict[last_val] = temp
#reset the list
temp = []
temp.append(i[1])
last_val = i[0]
my_dict[last_val] = temp
return my_dict
Aber das ist nicht sehr Pythonic. Gibt es einen pythonischen Weg, dies zu erreichen?