Løst: omdøb dubletter i listepython

At omdøbe dubletter på en liste kan være et svært problem at løse, fordi det kræver, at du identificerer dubletterne og derefter beslutter, hvordan du omdøber dem. Dette kan især være udfordrende, hvis listen indeholder mange elementer, eller hvis elementerne er komplekse objekter. Derudover kan omdøbning af dubletter muligvis kræve, at du ændrer andre dele af din kode, der er afhængige af de originale navne på elementerne, for at de kan fortsætte med at fungere korrekt.

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 kode definerer en funktion kaldet rename_duplicates, der tager en liste ind som et argument.
def rename_duplicates(lst):

# Det opretter derefter et tomt sæt kaldet set og en tom liste kaldet new_lst.
set = sæt()
new_lst = []

# Den gentager derefter elementerne på listen og tjekker, om de allerede er i sættet af sete elementer.
for vare i lst:
hvis element ikke er set: # Hvis det ikke er, føjer det det til sættet af sete elementer og tilføjer det til den nye liste.
set.add(item)
new_lst.append(item) # Hvis det er det, opretter det en unik version af det element ved at tilføje et suffiks (f.eks. '_1') til dets navn og tjekker, om dette nyoprettede element allerede er i sættet af set elementer.

andet: # Hvis det er tilfældet, øger den suffikset, indtil den finder en ubrugt version af det elementnavn og tilføjer dette nyoprettede element til både sættet af sete elementer og til den nye liste, før den returnerer denne nye liste i slutningen af ​​dens udførelse.

new_item = item + '_1'

mens new_item i set: # stigning suffiks indtil unik

suffiks = int(new_item.split('_')[-1]) + 1 # få sidste tal og tilføje et til det

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

set.add(ny

Lister i Python

Lister i Python er en af ​​de mest brugte datastrukturer. De bruges til at opbevare en samling af genstande, som kan være af enhver type, inklusive andre lister. Lister kan ændres, hvilket betyder, at de kan ændres, efter de er blevet oprettet. De understøtter også operationer såsom indeksering, udskæring og sammenkædning.

For at oprette en liste i Python bruger du firkantede parenteser og adskiller hvert element med et komma:

min_liste = [1, 2, 3]

Du kan få adgang til individuelle elementer på listen ved hjælp af deres indeks:
min_liste[0] # returnerer 1
min_liste[1] # returnerer 2
min_liste[2] # returnerer 3

Du kan også bruge negative indekser til at få adgang til elementer fra slutningen af ​​listen:

min_liste[-1] # returnerer 3 (det sidste element)

Du kan tilføje elementer til en liste ved hjælp af append() metoden:

my_list.append(4) # tilføjer 4 til slutningen af ​​listen

Du kan fjerne elementer fra en liste ved at bruge enten remove() eller pop() metoderne:

my_list.remove(3) # fjerner 3 fra listen

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

Omdøb dubletter på listen i Python

Omdøb dubletter i liste i Python er en almindelig opgave, når man har med lister at gøre. Det involverer udskiftning af duplikerede elementer i en liste med unikke værdier. Dette kan gøres ved hjælp af set()-funktionen, som fjerner alle duplikerede elementer fra en liste og returnerer en ny liste med kun unikke elementer. Funktionen set() kan også bruges til at omdøbe dubletter ved at give den en tilknytning af gamle værdier til nye værdier. For eksempel, hvis du har en liste med tal og ønsker at erstatte alle dubletter med deres respektive firkanter, kan du bruge følgende kode:

# Opret en tom ordbog
kortlægning = {}

# Gentag den originale liste
for element i min_liste:
# Tjek om elementet allerede findes i ordbogen
hvis element ikke er i kortlægning:
# Hvis ikke, føj den til ordbogen og tildel dens firkant som værdi
mapping[item] = item * item

# Opret en tom resultatliste
resultatliste = []

# Gentag den oprindelige liste igen og erstat hvert element med dets kvadrat fra ordbogen for i i min_liste: result_list.append(mapping[i])

# Udskriv resultat print (resultatliste)

Relaterede indlæg:

Efterlad en kommentar