Atrisināts: pārdēvējiet dublikātus sarakstā python

Dublikātu pārdēvēšana sarakstā var būt sarežģīta problēma, jo tas prasa identificēt dublikātus un pēc tam izlemt, kā tos pārdēvēt. Tas var būt īpaši sarežģīti, ja sarakstā ir daudz elementu vai ja elementi ir sarežģīti objekti. Turklāt, lai pārdēvētu dublikātus, var būt nepieciešams pārveidot citas koda daļas, kuru pamatā ir elementu oriģinālie nosaukumi, lai tie turpinātu pareizi darboties.

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

# Šis kods definē funkciju ar nosaukumu rename_duplicates, kas kā argumentu uzņem sarakstu.
def rename_duplicates(lst):

# Pēc tam tiek izveidota tukša kopa ar nosaukumu seen un tukšs saraksts ar nosaukumu new_lst.
redzēts = set()
new_lst = []

# Pēc tam tas atkārto vienumus sarakstā un pārbauda, ​​vai tie jau ir redzēto vienumu komplektā.
vienumam lst:
ja vienums nav redzēts: # Ja tā nav, tas pievieno to redzēto vienumu kopai un pievieno jaunajam sarakstam.
redzēts.pievienot(prece)
new_lst.append(item) # Ja tā ir, tā izveido unikālu šī vienuma versiju, pievienojot tā nosaukumam sufiksu (piemēram, '_1') un pārbauda, ​​vai šis jaunizveidotais vienums jau ir redzēto vienumu kopā.

else: # Ja tā, tas palielina sufiksu, līdz atrod neizmantotu šī vienuma nosaukuma versiju, un pievieno šo jaunizveidoto vienumu gan redzēto vienumu kopai, gan jaunajam sarakstam, pirms tā izpildes beigās atgriež šo jauno sarakstu.

new_item = vienums + '_1'

kamēr jauns_item redzams: # pieauguma sufikss līdz unikālam

sufikss = int(new_item.split('_')[-1]) + 1 # iegūt pēdējo numuru un pievienot tam vienu

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

seen.add(jauns

Saraksti Python

Python saraksti ir viena no visbiežāk izmantotajām datu struktūrām. Tie tiek izmantoti, lai saglabātu priekšmetu kolekciju, kas var būt jebkura veida, ieskaitot citus sarakstus. Saraksti ir maināmi, kas nozīmē, ka tos var mainīt pēc to izveides. Tie atbalsta arī tādas darbības kā indeksēšana, sagriešana un savienošana.

Lai izveidotu sarakstu programmā Python, izmantojiet kvadrātiekavas un katru vienumu atdaliet ar komatu:

mans_saraksts = [1, 2, 3]

Varat piekļūt atsevišķiem saraksta elementiem, izmantojot to indeksu:
my_list[0] # atgriež 1
my_list[1] # atgriež 2
my_list[2] # atgriež 3

Varat arī izmantot negatīvos rādītājus, lai piekļūtu elementiem no saraksta beigām:

my_list[-1] # atgriež 3 (pēdējais elements)

Varat pievienot vienumus sarakstam, izmantojot append() metodi:

my_list.append(4) # pievieno 4 saraksta beigās

Varat noņemt vienumus no saraksta, izmantojot vai nu noņemšanas () vai pop () metodi:

my_list.remove(3) # noņem 3 no saraksta

my_list.pop(2) # noņem un atgriež 2 (trešo elementu) no saraksta

Pārdēvējiet dublikātus sarakstā Python

Pārdēvēt dublikātus sarakstā Python ir izplatīts uzdevums, strādājot ar sarakstiem. Tas ietver dublikātu elementu aizstāšanu sarakstā ar unikālām vērtībām. To var izdarīt, izmantojot funkciju set(), kas no saraksta noņem visus dublētos elementus un atgriež jaunu sarakstu ar tikai unikāliem elementiem. Funkciju set() var izmantot arī, lai pārdēvētu dublikātus, nodrošinot veco vērtību kartēšanu ar jaunām vērtībām. Piemēram, ja jums ir skaitļu saraksts un vēlaties aizstāt visus dublikātus ar attiecīgajiem kvadrātiem, varat izmantot šādu kodu:

# Izveidojiet tukšu vārdnīcu
kartēšana = {}

# Atkārtojiet sākotnējo sarakstu
vienumam my_list:
# Pārbaudiet, vai vārdnīcā jau ir vienums
ja vienums nav kartēšanā:
# Ja nē, pievienojiet to vārdnīcai un piešķiriet tā kvadrātu kā vērtību
kartēšana[prece] = vienums * vienums

# Izveidojiet tukšu rezultātu sarakstu
rezultātu_saraksts = []

# Atkārtoti atkārtojiet sākotnējo sarakstu un aizstājiet katru elementu ar tā kvadrātu no vārdnīcas vārdam i sarakstā mans_saraksts: result_list.append(mapping[i])

# Drukāt rezultātu izdruka(result_list)

Related posts:

Leave a Comment