Diberi senarai rentetan, contohnya:
foo = \['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'\]
Bagaimana kita melabelkannya supaya outputnya ialah:
output = \['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b2', 'c3', 'a5'\]
(Simpan susunan senarai asal)
Dalam kes berikut, terdapat hanya 3 pembolehubah unik untuk dilihat, jadi pemikiran pertama saya adalah untuk melihat elemen unik:
import numpy as np np.unique(foo) Output = \['A', 'B', 'C'\]
Tetapi apabila saya cuba mencari gelung yang sesuai untuk mencapai output yang diingini, saya tersekat.
Menggunakan ular sawa tulen, menggunakan kamus untuk mengira nilai:
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]}')
Kalau boleh guna pandas:
import pandas as pd s = pd.Series(foo) out = s.add(s.groupby(s).cumcount().add(1).astype(str)).tolist()
Output: ['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b3', 'c3', 'a5' ]
Atas ialah kandungan terperinci Tandakan senarai mengikut elemen unik yang muncul dalam senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!