Строки

Удаление всех дубликатов символов из заданной строки в Python

Нам дана строка символов, из которой нужно удалить все дубликаты. При этом порядок символов имеет значение. Каким будет результат?

Примеры:

Input : geeksforgeeks
Output : efgkos

Совет: пожалуйста, попробуйте сначала решить эту задачу самостоятельно в своей IDE, а уж потом читать решение.

У этой задачи есть готовое решение (см. Remove all duplicates from a given string).

from collections import OrderedDict 

def removeDupWithoutOrder(str): 
    return "".join(set(str)) 

def removeDupWithOrder(str): 
    return "".join(OrderedDict.fromkeys(str)) 


if __name__ == "__main__": 
    str = "geeksforgeeks"
    print("Without Order =" , removeDupWithoutOrder(str))
    print("With Order = ", removeDupWithOrder(str))

Результат:

Without Order =  egfkosr
With Order    =  geksfor

Что делают OrderedDict и fromkeys()?

OrderedDict это словарь, который запоминает порядок вставки ключей. Если новое вхождение перезаписывает существующее вхождение, исходная позиция вставки остается неизменной.

Обратите внимание на следующий отрывок кода:

from collections import OrderedDict 

ordinary_dictionary = {} 
ordinary_dictionary['a'] = 1
ordinary_dictionary['b'] = 2
ordinary_dictionary['c'] = 3
ordinary_dictionary['d'] = 4
ordinary_dictionary['e'] = 5

# Output = {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4} 
print(ordinary_dictionary)  

ordered_dictionary = OrderedDict() 
ordered_dictionary['a'] = 1
ordered_dictionary['b'] = 2
ordered_dictionary['c'] = 3
ordered_dictionary['d'] = 4
ordered_dictionary['e'] = 5

# Output = {'a':1,'b':2,'c':3,'d':4,'e':5} 
print(ordered_dictionary)  

fromkeys() создает новый словарь и возвращает список ключей. Ключи для нового словаря берутся из seq, а значения — из value (если заданы). Синтаксис метода fromkeys() — fromkeys(seq[, value]).

Параметры:

  • seq: Это список значений, которые будут использоваться при подготовке ключей для словаря.
  • value: Опционально; если задать, значение будет установлено в качестве value.
Марина

Recent Posts

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

5 дней ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

1 неделя ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

3 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

3 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

4 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

2 месяца ago