Tandakan senarai mengikut elemen unik yang muncul dalam senarai

PHPz
Lepaskan: 2024-02-08 20:57:04
ke hadapan
489 orang telah melayarinya

Tandakan senarai mengikut elemen unik yang muncul dalam senarai

Kandungan soalan

Diberi senarai rentetan, contohnya:

foo = \['a', 'a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'c', 'a'\]
Salin selepas log masuk

Bagaimana kita melabelkannya supaya outputnya ialah:

output = \['a1', 'a2', 'b1', 'a3', 'b2', 'c1', 'c2', 'a4', 'b2', 'c3', 'a5'\]
Salin selepas log masuk

(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'\]
Salin selepas log masuk

Tetapi apabila saya cuba mencari gelung yang sesuai untuk mencapai output yang diingini, saya tersekat.


Jawapan betul


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]}')
Salin selepas log masuk

Kalau boleh guna :

import pandas as pd

s = pd.Series(foo)
out = s.add(s.groupby(s).cumcount().add(1).astype(str)).tolist()
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!