从string中删除重复的字符

我怎样才能使用Python从string中删除重复的字符? 例如,假设我有一个string:

foo = 'mppmt' 

我怎样才能使string:

 foo = 'mpt' 

注:订单不重要

如果顺序无关紧要,您可以使用

 "".join(set(foo)) 

set()将在string中创build一组唯一的字母, "".join() join "".join()将以任意顺序将字母连接回string。

如果顺序很重要,可以在Python 2.7中使用collections.OrderedDict

 from collections import OrderedDict foo = "mppmt" print "".join(OrderedDict.fromkeys(foo)) 

印花

 mpt 

如果订单确实重要,那么:

 >>> foo = 'mppmt' >>> ''.join(sorted(set(foo), key=foo.index)) 'mpt' 

如果订单不是这个问题:

 >>> foo='mppmt' >>> ''.join(set(foo)) 'pmt' 

为了保持顺序:

 >>> foo='mppmt' >>> ''.join([j for i,j in enumerate(foo) if j not in foo[:i]]) 'mpt' 

如果订单很重要,

 seen = set() result = [] for c in foo: if c not in seen: result.append(c) seen.add(c) result = ''.join(result) 

或者没有设置:

 result = [] for c in foo: if c not in result: result.append(c) result = ''.join(result) 

C#代码:

 private static string deleteDuplicate(string s) { for (int i = 0; i < s.Length - 1; i++) { if (s[i] == s[i + 1]) { return deleteDuplicate(s.Remove(i,1)); } } return s; }