如何使用Python从字符串中删除重复的字符?例如,假设我有一个字符串:
foo = 'mppmt'
Run Code Online (Sandbox Code Playgroud)
我该如何制作字符串:
foo = 'mpt'
Run Code Online (Sandbox Code Playgroud)
注意:订单并不重要
Sve*_*ach 83
如果订单无关紧要,您可以使用
"".join(set(foo))
Run Code Online (Sandbox Code Playgroud)
set()将在字符串中创建一组唯一字母,并"".join()以任意顺序将字母连接回字符串.
如果为了做的事情,你可以使用collections.OrderedDict在Python 2.7或以上:
from collections import OrderedDict
foo = "mppmt"
result = "".join(OrderedDict.fromkeys(foo))
Run Code Online (Sandbox Code Playgroud)
产生字符串"mpt".
DSM*_*DSM 39
如果订单确实 重要,那么:
>>> foo = 'mppmt'
>>> ''.join(sorted(set(foo), key=foo.index))
'mpt'
Run Code Online (Sandbox Code Playgroud)
如果订单不是问题:
>>> foo='mppmt'
>>> ''.join(set(foo))
'pmt'
Run Code Online (Sandbox Code Playgroud)
保持订单:
>>> foo='mppmt'
>>> ''.join([j for i,j in enumerate(foo) if j not in foo[:i]])
'mpt'
Run Code Online (Sandbox Code Playgroud)
在 Python 中创建一个列表以及一个不允许任何重复的集合。解决方案1:
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))
Run Code Online (Sandbox Code Playgroud)
方法二:
s = "Protijayi"
aa = [ ch for i, ch in enumerate(s) if ch not in s[:i]]
print(''.join(aa))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89605 次 |
| 最近记录: |