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}*)