Gleiche Werte in einer Liste finden

Sep 17 2020

Gibt es eine Möglichkeit, gleiche Elemente aus einer Liste und ihrer Position zu entfernen?

Ein Beispiel kann sein

v = {13.51, 13.51, 12.36, 12.36, 12.36, 12.36, 12.85, 12.85, 12.85, 12.85}

mit gewünschter Ausgabe eine Liste wie:

 {{13.51, 12.36, 12.85},{2,4,4}}

wo links die Elemente in der richtigen Reihenfolge geschrieben sind und rechts, wie oft sie wiederholt werden. Die Elemente in der Startliste gelten als geordnet. Vielen Dank

Antworten

2 Bill Sep 17 2020 at 09:26

Versuchen

v = {13.51, 13.51, 12.36, 12.36, 12.36, 12.36, 12.85, 12.85, 12.85, 12.85};
Transpose[Tally[v]]

was zurückkehrt

{{13.51, 12.36, 12.85}, {2, 4, 4}}

und sehen Sie, ob das in jedem Fall für Sie funktioniert. Ungefähre Dezimalzahlen können manchmal Probleme beim Testen auf Gleichheit verursachen.

UlrichNeumann Sep 17 2020 at 09:54

Versuchen Union

{13.51, 13.51, 12.36, 12.36, 12.36, 12.36, 12.85, 12.85, 12.85, 12.85} // Union
(*{12.36, 12.85, 13.51}*)

{1, 3, 3, 3, 4, 4, 4} //Union
(*{1, 3, 4}*)