python3: erstatte en av dupliserte brodd elementer i en liste med en annen streng som:

stemmer
0

Det er flere like srting elementer i listen min. Jeg ønsker å endre en av disse elementene med en annen streng element. For eksempel:

a = ['b','c','d','b','b']

Jeg ønsker å endre 'b' med indeks 3 med 'x'

a = ['b','c','d','x','b']

Publisert på 02/09/2018 klokken 05:16
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Lese dine kommentarer det ser ut som du ikke bryr deg om alle duplikater blir erstattet. Så du kan gjøre dette i en tråd med følgende:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) == 1 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','x']

Hvis du egentlig bare ønsker å oppdatere andre eksempel følgende arbeider i en tråd også:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) != 2 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','b']
Svarte 02/09/2018 kl. 05:39
kilden bruker

stemmer
0

I utgangspunktet listeoperasjoner er:

  • a.pop(idx)(Vil pop element på indeksen idx)
  • a.insert(idx, val)(Vil sett verdi av vali posisjon idx)

Likevel, dette er en virkelig dårlig definert programmering problem, med mange åpne spørsmål:

  1. kan duplikasjoner oppstå mer enn 2 ganger?
  2. skal utskifting gjøres bare for første element?
  3. skal erstatningen gjøres med konstant karakter, eller kanskje en sekvens?

Lukter lekser. I så fall kan du gjøre det uten Stackoverflow ....

Svarte 02/09/2018 kl. 05:28
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more