Ich habe eine Liste von Listen:Ein effizienter Weg, um eine Liste der Liste zu transponieren
x = [ [4, ‘c’, ‘b’, ‘d’], [2, ‘e’, ‘c’, ‘a’], [5, ‘a’, ‘c’] ]
, die ich konvertieren müssen:
x1 = [ [‘c’, 4, 2, 5], [‘b’, 4], [‘d’, 4], [‘e’, 2], [‘a’, 2, 5] ]
Erläuterung:
'c' appears in lists starting with 4, 2, 5
'b' appears in only the list starting with 4
'd' appears in only the list starting with 4
...
offensichtlich Dies ist ein Spielzeugbeispiel, aber meine wirkliche Liste hat ungefähr 30 MB in einer flachen Datei.
Ich habe versucht, mit einem zwei verschachtelten for-Schleifen, aber es dauert etwa 5 Stunden für nur die 5% der Datei in meinem MacBook Pro (8 GB RAM).
Gibt es einen effizienten Weg, dies zu tun?
haben Sie versucht? wenn nicht versuchen Sie etwas, bevor Sie um Hilfe bitten – depperm
Ich kann nicht folgen, welche Logik verwendet wird, um x in x1 zu übersetzen, sieht zufällig aus. – sniperd
Ich kann hier nicht einmal ein Muster finden. Warum erscheint '2' nur einmal in der Eingabe, aber dreimal in der Ausgabe? Gleiches gilt für '4', aber' 5' erscheint nur zweimal. –