Вирішено: перейменувати дублікати в списку 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.
seen = set()
new_lst = []

# Потім він перебирає елементи в списку та перевіряє, чи є вони вже в наборі побачених елементів.
для елемента в lst:
if item not in seen: # Якщо це не так, він додає його до набору побачених елементів і додає до нового списку.
seen.add(item)
new_lst.append(item) # Якщо так, то створюється унікальна версія цього елемента шляхом додавання суфікса (наприклад, '_1') до його назви та перевіряється, чи цей щойно створений елемент уже є в наборі побачених елементів.

else: # Якщо так, він збільшує суфікс, доки не знайде невикористану версію назви цього елемента та додає цей щойно створений елемент як до набору побачених елементів, так і до нового списку перед поверненням цього нового списку в кінці його виконання.

new_item = item + '_1'

while new_item in seen: # збільшувати суфікс до унікальності

суфікс = int(new_item.split('_')[-1]) + 1 # отримати останній номер і додати до нього один

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

seen.add(новий

Списки в Python

Списки в Python є однією з найбільш часто використовуваних структур даних. Вони використовуються для зберігання колекції елементів, яка може бути будь-якого типу, включаючи інші списки. Списки є змінними, тобто їх можна змінювати після створення. Вони також підтримують такі операції, як індексування, нарізка та конкатенація.

Щоб створити список у Python, ви використовуєте квадратні дужки та відокремлюєте кожен елемент комою:

мій_список = [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)

Схожі повідомлення:

Залишити коментар