2013-10-28 111 views
0

有沒有辦法刪除重複的字符?例如,如果我們輸入「hello」,輸出將是「helo」;另一個例子是「溢出」,輸出將是「溢出」;另一個例子是「段落」,輸出將是「parghs」。如何刪除字符串中的重複字母

我已經試過

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

那麼這個代碼有什麼問題? - 順便說一句,這個參數被稱爲'mystring',但是你可以在'for'循環中使用'string'。 –

回答

1

變化stringmystring

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

也很重要,那麼不僅僅是'set(x for'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