Решено: преименуване на дубликати в списък python

Преименуването на дубликати в списък може да бъде труден проблем за разрешаване, тъй като изисква да идентифицирате дубликатите и след това да решите как да ги преименувате. Това може да бъде особено предизвикателно, ако списъкът съдържа много елементи или ако елементите са сложни обекти. Освен това преименуването на дубликати може да наложи да промените други части от кода си, които разчитат на оригиналните имена на елементите, за да продължат да функционират правилно.

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

# Този код дефинира функция, наречена rename_duplicates, която приема списък като аргумент.
def rename_duplicates(lst):

# След това създава празен набор, наречен seen, и празен списък, наречен new_lst.
видяно = set()
new_lst = []

# След това преминава през елементите в списъка и проверява дали вече са в набора от видяни елементи.
за елемент в lst:
if item not in seen: # Ако не е, той го добавя към набора от видяни елементи и го добавя към новия списък.
seen.add(елемент)
new_lst.append(item) # Ако е така, той създава уникална версия на този елемент чрез добавяне на суфикс (напр. '_1') към името му и проверява дали този новосъздаден елемент вече е в набора от видяни елементи.

else: # Ако е така, той увеличава суфикса, докато намери неизползвана версия на това име на елемент и добави този новосъздаден елемент както към набора от видяни елементи, така и към новия списък, преди да върне този нов списък в края на неговото изпълнение.

нов_елемент = елемент + '_1'

докато new_item in seen: # увеличава суфикса до уникален

суфикс = int(new_item.split('_')[-1]) + 1 # вземете последното число и добавете едно към него

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), суфикс)

seen.add(нов

Списъци в Python

Списъците в Python са една от най-често използваните структури от данни. Те се използват за съхраняване на колекция от елементи, които могат да бъдат от всякакъв тип, включително други списъци. Списъците са променливи, което означава, че могат да бъдат променяни, след като са били създадени. Те също така поддържат операции като индексиране, нарязване и конкатенация.

За да създадете списък в Python, използвате квадратни скоби и отделяте всеки елемент със запетая:

my_list = [1, 2, 3]

Можете да получите достъп до отделни елементи в списъка, като използвате техния индекс:
my_list[0] # връща 1
my_list[1] # връща 2
my_list[2] # връща 3

Можете също да използвате отрицателни индекси за достъп до елементи от края на списъка:

my_list[-1] # връща 3 (последния елемент)

Можете да добавяте елементи към списък с помощта на метода append():

my_list.append(4) # добавя 4 към края на списъка

Можете да премахнете елементи от списък, като използвате методите remove() или pop():

my_list.remove(3) # премахва 3 от списъка

my_list.pop(2) # премахва и връща 2 (третия елемент) от списъка

Преименувайте дубликати в списък в Python

Преименуването на дубликати в списък в Python е често срещана задача при работа със списъци. Това включва замяна на дублирани елементи в списък с уникални стойности. Това може да стане с помощта на функцията set(), която премахва всички дублирани елементи от списък и връща нов списък само с уникални елементи. Функцията set() може също да се използва за преименуване на дубликати, като й се предостави картографиране на стари стойности към нови стойности. Например, ако имате списък с числа и искате да замените всички дубликати със съответните им квадрати, можете да използвате следния код:

# Създайте празен речник
картографиране = {}

# Итериране на оригиналния списък
за елемент в my_list:
# Проверете дали елементът вече съществува в речника
ако елементът не е в картографирането:
# Ако не, добавете го към речника и присвоете неговия квадрат като стойност
съпоставяне [елемент] = елемент * елемент

# Създайте празен списък с резултати
списък с резултати = []

# Превъртете оригиналния списък отново и заменете всеки елемент с неговия квадрат от речника за i в my_list: result_list.append(mapping[i])

# Печат на резултат print(result_list)

Подобни публикации:

Оставете коментар