首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串中删除重复字符

从字符串中删除重复字符
EN

Stack Overflow用户
提问于 2012-03-23 22:50:12
回答 12查看 153.5K关注 0票数 60

如何使用Python删除字符串中的重复字符?例如,假设我有一个字符串:

代码语言:javascript
复制
foo = 'mppmt'

我怎样才能使字符串:

代码语言:javascript
复制
foo = 'mpt'

注意:顺序并不重要

EN

回答 12

Stack Overflow用户

发布于 2012-03-23 22:52:50

如果顺序不是问题:

代码语言:javascript
复制
>>> foo='mppmt'
>>> ''.join(set(foo))
'pmt'

要保持顺序,请执行以下操作:

代码语言:javascript
复制
>>> foo='mppmt'
>>> ''.join([j for i,j in enumerate(foo) if j not in foo[:i]])
'mpt'
票数 12
EN

Stack Overflow用户

发布于 2018-05-02 14:49:20

在Python中创建一个列表和一个不允许任何重复的set。Solution1:

代码语言:javascript
复制
def fix(string):
    s = set()
    list = []
    for ch in string:
        if ch not in s:
            s.add(ch)
            list.append(ch)

    return ''.join(list)        

string = "Protiijaayiiii"
print(fix(string))

方法二:

代码语言:javascript
复制
s = "Protijayi"

aa = [ ch  for i, ch in enumerate(s) if ch not in s[:i]]
print(''.join(aa))
票数 5
EN

Stack Overflow用户

发布于 2018-01-15 07:33:46

正如前面提到的,"".join(set(foo))和collections.OrderedDict就可以了。增加了foo = foo.lower(),以防字符串包含大写和小写字符,并且您需要删除所有重复项,无论它们是大写字符还是小写字符。

代码语言:javascript
复制
from collections import OrderedDict
foo = "EugeneEhGhsnaWW"
foo = foo.lower()
print "".join(OrderedDict.fromkeys(foo))

印花真锯片

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9841303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档