2024-09-30 20:27:31 发布
网友
我试图减少一个字符串的重复,但我不想创建一个集。例如
mystring = 'TTTTTPPPTPTTTTPPPPPPPPP'
字母的顺序是'TPTPTP',所以我需要一个结果字符串
newstring = 'TPTPTP'
我相信有一个简单的一行,但它逃避我
用前面的一个字符压缩每个字符,然后取不同的字符:
>>> a 'TTTTTPPPTPTTTTPPPPPPPPP' >>> ''.join(i for i, j in zip(a, '\0' + a) if i != j) 'TPTPTP'
如果你喜欢,你也可以使用正则表达式
>>> import re >>> mystring = 'TTTTTPPPTPTTTTPPPPPPPPP' >>> ''.join(re.findall(r'(.)\1*', mystring)) 'TPTPTP'
查找任何字符,后跟同一个找到的字符零次或多次
你在找itertools.groupby
itertools.groupby
>>> mystring = 'TTTTTPPPTPTTTTPPPPPPPPP' >>> groups = [x for x, y in itertools.groupby(mystring)] >>> groups ['T', 'P', 'T', 'P', 'T', 'P'] >>> ''.join(groups) TPTPTP
Official documentation
用前面的一个字符压缩每个字符,然后取不同的字符:
如果你喜欢,你也可以使用正则表达式
查找任何字符,后跟同一个找到的字符零次或多次
你在找
itertools.groupby
Official documentation
相关问题 更多 >
编程相关推荐