2013-10-28 4 views
0

Есть ли способ удалить повторяющиеся символы? Например, если мы вводим «привет», выход будет «helo»; другим примером является «переполнение», выход будет «overflw»; в другом примере «параграфы» вывод будет «parghs».Как удалить повторяющиеся буквы в строке

Я попытался

def removeDupes(mystring): 
    newStr = "" 
    for ch in string: 
     if ch not in newStr: 
      newStr = newStr + ch 
    return newStr 
+0

Так в чем проблема с этим кодом? - Кстати, аргумент называется 'mystring', но вы используете' string' в цикле 'for'. –

ответ

1

Изменение string в mystring:

def removeDupes(mystring): 
    newStr = "" 
    for ch in mystring: 
     if ch not in newStr: 
      newStr = newStr + ch 
    return newStr 

print removeDupes("hello") 
print removeDupes("overflow") 
print removeDupes("paragraphs") 

>>> 
helo 
overflw 
parghs 
+0

спасибо, что я не видел свою ошибку – chiktin

0

да с чем-то называется набор:

unique = set() 

[ unique.add(c) for c in 'stringstring' ] 
+2

Это не сохранит порядок, если это важно для OP – Ben

+0

, также не будет просто «установить (x для x в« stringstring »)' лучше и больше Pythonic? – Doorknob

1

я хотел бы использовать collections.OrderedDict для этого:

>>> from collections import OrderedDict 
>>> data = "paragraphs" 
>>> print "".join(OrderedDict.fromkeys(data)) 
parghs 
+0

-1 для плагиата [этот ответ] (http://stackoverflow.com/a/9841328/1223693) – Doorknob

+1

@Doorkob Я не знал об этом ответе - так я и сделал бы это. – Ben

+0

ладно, я просто верю в то, что верю тебе. во всяком случае, это повторяющийся вопрос – Doorknob

Смежные вопросы