Heim > Backend-Entwicklung > Python-Tutorial > Markieren Sie eine Liste anhand der eindeutigen Elemente, die in der Liste erscheinen

Markieren Sie eine Liste anhand der eindeutigen Elemente, die in der Liste erscheinen

PHPz
Freigeben: 2024-02-08 20:57:04
nach vorne
509 Leute haben es durchsucht

Markieren Sie eine Liste anhand der eindeutigen Elemente, die in der Liste erscheinen

Frageninhalt

Angenommen eine Liste von Zeichenfolgen, zum Beispiel:

foo = \['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'\]
Nach dem Login kopieren

Wie wir sie kennzeichnen, sodass die Ausgabe lautet:

output = \['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b2', 'c3', 'a5'\]
Nach dem Login kopieren

(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'\]
Nach dem Login kopieren

Aber wenn ich versuche, die richtige Schleife zu finden, um die gewünschte Ausgabe zu erzielen, stecke ich fest.


Richtige Antwort


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]}')
Nach dem Login kopieren

Wenn Sie verwenden können:

import pandas as pd

s = pd.Series(foo)
out = s.add(s.groupby(s).cumcount().add(1).astype(str)).tolist()
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage