如何删除字符串中除所选值之外的所有值

dip*_*pte 9 python string

所以我的代码是 value = "123456" 我要删除除2和5之外的所有内容.输出将是25 程序应该工作,即使值更改,例如 value = "463312" 输出将是2

我试着使用remove()replace()功能.但它没有用. 在python 3.6.2上进行

wim*_*wim 12

您最好不要尝试删除所有不需要的字符,而是最好在结果中构建要保留的字符的白名单:

>>> value = '123456'
>>> whitelist = set('25')
>>> ''.join([c for c in value if c in whitelist])
'25'
Run Code Online (Sandbox Code Playgroud)

这是循环隐含的另一个选项.我们构建一个映射,用于str.translate每个字符映射到的位置'',除非另有说明:

>>> from collections import defaultdict
>>> d = defaultdict(str, str.maketrans('25', '25'))
>>> '123456'.translate(d)
'25'
Run Code Online (Sandbox Code Playgroud)


Flo*_*oor 9

如果你正在寻找的正则表达式的解决方案,那么你可以使用re.sub替换所有以外的字符25''.

import re
x = "463312"
new = re.sub('[^25]+' ,'', x)
x = "463532312"
new = re.sub('[^25]+' ,'', x)
Run Code Online (Sandbox Code Playgroud)

输出: 2,522