Angenommen eine Liste von Zeichenfolgen, zum Beispiel:
foo = \['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'\]
Wie wir sie kennzeichnen, sodass die Ausgabe lautet:
output = \['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b2', 'c3', 'a5'\]
(Originalreihenfolge der Liste beibehalten)
Im folgenden Fall müssen nur drei eindeutige Variablen betrachtet werden, daher ist mein erster Gedanke, die eindeutigen Elemente zu betrachten:
import numpy as np np.unique(foo) Output = \['A', 'B', 'C'\]
Aber wenn ich versuche, die richtige Schleife zu finden, um die gewünschte Ausgabe zu erzielen, stecke ich fest.
Verwenden Sie reines Python und verwenden Sie ein Wörterbuch, um den Wert zu berechnen:
foo = ['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'] d = {} out = [] for val in foo: d[val] = d.get(val, 0)+1 out.append(f'{val}{d[val]}')
Wenn Sie Pandas verwenden können:
import pandas as pd s = pd.Series(foo) out = s.add(s.groupby(s).cumcount().add(1).astype(str)).tolist()
Ausgabe: ['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b3', 'c3', 'a5' ]
Das obige ist der detaillierte Inhalt vonMarkieren Sie eine Liste anhand der eindeutigen Elemente, die in der Liste erscheinen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!