Перейменування дублікатів у списку може бути важкою проблемою для вирішення, оскільки вам потрібно визначити дублікати, а потім вирішити, як їх перейменувати. Це може бути особливо складним, якщо список містить багато елементів або якщо елементи є складними об’єктами. Крім того, перейменування дублікатів може вимагати від вас змінити інші частини вашого коду, які покладаються на оригінальні назви елементів, щоб вони продовжували функціонувати належним чином.
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)