Maison > développement back-end > Tutoriel Python > Marquer une liste par les éléments uniques qui apparaissent dans la liste

Marquer une liste par les éléments uniques qui apparaissent dans la liste

PHPz
Libérer: 2024-02-08 20:57:04
avant
509 Les gens l'ont consulté

Marquer une liste par les éléments uniques qui apparaissent dans la liste

Contenu de la question

À partir d'une liste de chaînes, par exemple :

foo = \['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'\]
Copier après la connexion

Comment nous les étiquetons pour que le résultat soit :

output = \['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b2', 'c3', 'a5'\]
Copier après la connexion

(Conserver l'ordre original de la liste)

Dans le cas suivant, il n'y a que 3 variables uniques à regarder, donc ma première pensée est de regarder les éléments uniques :

import numpy as np

np.unique(foo)

Output = \['A', 'B', 'C'\]
Copier après la connexion

Mais lorsque j'essaie de trouver la bonne boucle pour obtenir le résultat souhaité, je reste bloqué.


Bonne réponse


En utilisant du python pur, en utilisant un dictionnaire pour calculer la valeur :

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]}')
Copier après la connexion

Si vous pouvez utiliser des  :

import pandas as pd

s = pd.Series(foo)
out = s.add(s.groupby(s).cumcount().add(1).astype(str)).tolist()
Copier après la connexion

Sortie : ['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b3', 'c3', 'a5' ]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal