Løst: Gi nytt navn til duplikater i listepython

Å gi nytt navn til duplikater i en liste kan være et vanskelig problem å løse fordi det krever at du identifiserer duplikatene og deretter bestemmer hvordan du skal gi dem nytt navn. Dette kan være spesielt utfordrende hvis listen inneholder mange elementer eller hvis elementene er komplekse objekter. I tillegg kan det å gi nytt navn til duplikater at du må endre andre deler av koden din som er avhengig av de opprinnelige navnene på elementene for at de skal fortsette å fungere ordentlig.

def rename_duplicates(lst): 
    seen = set() 
    new_lst = [] 

    for item in lst: 
        if item not in seen: 
            seen.add(item) 
            new_lst.append(item) 
        else: 
            new_item = item + '_1'   # append a suffix to make it unique  

            while new_item in seen:   # increment the suffix until it's unique  
                suffix = int(new_item.split('_')[-1]) + 1   # get the last number and add one to it  
                new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix)

            seen.add(new_item)     # add the newly created item to the set of seen items  
            new_lst.append(new_item)     # append the newly created item to the list

    return new

_lst

# Denne koden definerer en funksjon kalt rename_duplicates som tar inn en liste som et argument.
def rename_duplicates(lst):

# Den lager deretter et tomt sett kalt sett og en tom liste kalt new_lst.
sett = sett ()
new_lst = []

# Den itererer deretter gjennom elementene i listen og sjekker om de allerede er i settet med sett elementer.
for vare i lst:
hvis elementet ikke er sett: # Hvis det ikke er det, legger det det til settet med sett elementer og legger det til den nye listen.
sett.legg til(element)
new_lst.append(item) # Hvis det er det, oppretter den en unik versjon av det elementet ved å legge til et suffiks (f.eks. '_1') til navnet og sjekker om dette nyopprettede elementet allerede er i settet med sett elementer.

annet: # Hvis ja, øker den suffikset til den finner en ubrukt versjon av det elementnavnet og legger dette nyopprettede elementet til både settet med sett elementer og til den nye listen før den returnerer denne nye listen på slutten av dens utførelse.

new_item = element + '_1'

mens new_item i sett: # inkrement suffiks til unik

suffiks = int(new_item.split('_')[-1]) + 1 # få siste tall og legg til ett til det

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffiks)

sett.legg til(ny

Lister i Python

Lister i Python er en av de mest brukte datastrukturene. De brukes til å lagre en samling av gjenstander, som kan være av hvilken som helst type, inkludert andre lister. Lister kan endres, noe som betyr at de kan endres etter at de er opprettet. De støtter også operasjoner som indeksering, skjæring og sammenkobling.

For å lage en liste i Python bruker du firkantede parenteser og skiller hvert element med et komma:

min_liste = [1, 2, 3]

Du kan få tilgang til individuelle elementer i listen ved å bruke deres indeks:
min_liste[0] # returnerer 1
min_liste[1] # returnerer 2
min_liste[2] # returnerer 3

Du kan også bruke negative indekser for å få tilgang til elementer fra slutten av listen:

min_liste[-1] # returnerer 3 (det siste elementet)

Du kan legge til elementer i en liste ved å bruke append()-metoden:

my_list.append(4) # legger til 4 på slutten av listen

Du kan fjerne elementer fra en liste ved å bruke enten remove()- eller pop()-metodene:

my_list.remove(3) # fjerner 3 fra listen

my_list.pop(2) # fjerner og returnerer 2 (det tredje elementet) fra listen

Gi nytt navn til duplikater i listen i Python

Gi nytt navn til duplikater i liste i Python er en vanlig oppgave når du arbeider med lister. Det innebærer å erstatte dupliserte elementer i en liste med unike verdier. Dette kan gjøres ved å bruke funksjonen set(), som fjerner alle dupliserte elementer fra en liste og returnerer en ny liste med bare unike elementer. Set()-funksjonen kan også brukes til å gi nytt navn til duplikater ved å gi den en tilordning av gamle verdier til nye verdier. Hvis du for eksempel har en liste med tall og ønsker å erstatte alle duplikatene med deres respektive firkanter, kan du bruke følgende kode:

# Lag en tom ordbok
kartlegging = {}

# Iterer over den opprinnelige listen
for element i min_liste:
# Sjekk om elementet allerede finnes i ordboken
hvis elementet ikke er i kartlegging:
# Hvis ikke, legg den til i ordboken og tilordne kvadratet som verdi
mapping[item] = element * element

# Opprett en tom resultatliste
resultatliste = []

# Iterer over originallisten igjen og erstatt hvert element med kvadratet fra ordboken for i i min_liste: result_list.append(mapping[i])

# Utskriftsresultat print (resultatliste)

Relaterte innlegg:

Legg igjen en kommentar