Ich bin auf der Suche nach einem Pythonic Weg, um eine große Anzahl von Listen zu durchlaufen und den Index der wiederholten Werte aus einer Liste zu verwenden, um einen Gesamtwert aus den Werten mit dem gleichen Index in einem anderen zu berechnen Liste.Schnelle Komprimierung von mehreren Listen mit Wertaddition
Zum Beispiel sagen, ich habe zwei Listen
a = [ 1, 2, 3, 1, 2, 3, 1, 2, 3]
b = [ 1, 2, 3, 4, 5, 6, 7, 8, 9]
Was will ich die eindeutigen Werte in a finden tun, und fügen Sie dann zusammen mit den entsprechenden Werten von b mit dem gleichen Index. Mein Versuch, die ziemlich langsam ist, ist wie folgt:
a1=list(set(a))
b1=[0 for y in range(len(a1))]
for m in range(len(a)):
for k in range(len(a1)):
if a1[k]==a[m]:
b1[k]+=b[m]
und ich
a1=[1, 2, 3]
b1=[12, 15, 18]
Bitte lassen Sie mich wissen, ob es ein schneller, pythonic Weg, dies zu tun. Dank
Das scheint gut zu funktionieren! Ich habe mich gefragt, ob es möglich wäre, eine weitere Stufe der Komplexität hinzuzufügen. Das heißt, eine dritte Liste, sagen wir c = [0,1,0,1,0,1,0,1,0], so dass der Wert nur hinzugefügt wird, wenn c [key] = 1 ?? – MicahJ
@MicahJ: füge einfach 'c' zum ersten' zip() 'hinzu:' Für Schlüssel, Wert, füge zip (a, b, c) hinzu: ', dann füge ein' if add: 'dazwischen ein. –