['bebeeeb','babab','afa','eeefe','bbfb','eaeeea'] 实际上这是一个列表,我想使用python删除包含重复的连续字符的字符串...输出应为[babab,afa]。谢谢。
答案 0 :(得分:1)
我建议使用一些正则表达式来查找重复字符。
import re
input = ['bebeeeb', 'babab', 'afa', 'eeefe', 'bbfb', 'eaeeea']
output = []
for s in input:
if not re.search(r'(.)\1', s):
output.append(s)
print(output) # ['babab', 'afa']
让我分解一下此正则表达式。
.
:匹配任意字符
(.)
:在组(组1)中捕获该字符
\1
:与第1组匹配相同的字符。
这也可以使用列表理解来完成。
output = [s for s in input if re.search(r'(.)\1', s)]
答案 1 :(得分:0)
import copy
for string in copy.deepcopy(list):
for a in range(len(string)-1):
if string[a]==string[a+1]:
del list[list.index(string)]
答案 2 :(得分:0)
您可以使用表达式any(prev==cur for prev,cur in zip(word, word[1:]))
检查单词中两个连续的字符是否匹配。因此,请使用基本的列表理解功能进行过滤
>>> lst = ['bebeeeb', 'babab', 'afa', 'eeefe', 'bbfb', 'eaeeea']
>>> [word for word in lst if not any(prev==cur for prev,cur in zip(word, word[1:]))]
['babab', 'afa']
或者,您可以使用re.search
来检查单词是否与常规字符匹配
>>> [word for word in lst if not re.search(r'(.)\1', word)]
['babab', 'afa']