Решено: переименовать дубликаты в списке 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):

# Затем создается пустой набор с именем visible и пустой список с именем new_lst.
видел = установить ()
новый_список = []

# Затем он перебирает элементы в списке и проверяет, есть ли они уже в наборе просмотренных элементов.
для элемента в списке:
если элемент не виден: # Если это не так, он добавляет его в набор видимых элементов и добавляет в новый список.
видел.добавить(элемент)
new_lst.append(item) # Если это так, он создает уникальную версию этого элемента, добавляя суффикс (например, '_1') к его имени, и проверяет, находится ли этот вновь созданный элемент уже в наборе просмотренных элементов.

else: # Если это так, он увеличивает суффикс до тех пор, пока не найдет неиспользуемую версию имени этого элемента и добавит этот вновь созданный элемент как в набор просмотренных элементов, так и в новый список, прежде чем вернуть этот новый список в конце своего выполнения.

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

в то время как new_item in visible: # увеличиваем суффикс до уникального

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

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

видел.добавить(новый

Списки на 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)

Похожие посты:

Оставьте комментарий