2024-10-05 14:28:45 发布
网友
现在我有一个例子清单
data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff']
我想删除重复字母的单词,其中我想删除单词
'aa','aac','bbb','bcca','ffffff'
也许import re?你知道吗
import re
循环是一种方式。忘记集合,因为它们不适用于字母重复的单词。你知道吗
以下是一种方法,可用于确定word在单个循环中是否有效:
def is_valid(word): last_char = None for i in word: if i == last_char: return False last_char = i return True
示例
In [28]: is_valid('dogo') Out[28]: True In [29]: is_valid('doo') Out[29]: False
感谢这个线程:Regex to determine if string is a single repeating character
这是重新的版本,但如果任务如此简单,我会坚持PM2环和Tameem的解决方案:
import re data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff'] [i for i in data if not re.search(r'^(.)\1+$', i)]
输出
['dog', 'cat', 'a', 'aac', 'bcca']
另一方面:
import re data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff'] [i for i in data if not re.search(r'((\w)\2{1,})', i)]
['dog', 'cat', 'a']
这个问题的最初版本想要删除完全由单个字符重复组成的单词。一个有效的方法是使用集合。我们将每个单词转换成一个集合,如果它只包含一个字符,那么这个集合的长度将是1。如果是这样的话,我们可以去掉那个词,除非原来的词是由一个字符组成的。你知道吗
data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff'] newdata = [s for s in data if len(s) == 1 or len(set(s)) != 1] print(newdata)
下面是新版本问题的代码,您希望删除包含任何重复字符的单词。这个比较简单,因为我们不需要对一个字符的单词进行特殊测试。。你知道吗
data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff'] newdata = [s for s in data if len(set(s)) == len(s)] print(newdata)
如果重复必须是连续的,我们可以使用^{}来处理。你知道吗
from itertools import groupby data = ['dog','cat','a','aa','aac','bbb','bcca','ffffff', 'abab', 'wow'] newdata = [s for s in data if max(len(list(g)) for _, g in groupby(s)) == 1] print(newdata)
['dog', 'cat', 'a', 'abab', 'wow']
循环是一种方式。忘记集合,因为它们不适用于字母重复的单词。你知道吗
以下是一种方法,可用于确定word在单个循环中是否有效:
示例
感谢这个线程:Regex to determine if string is a single repeating character
这是重新的版本,但如果任务如此简单,我会坚持PM2环和Tameem的解决方案:
输出
另一方面:
输出
这个问题的最初版本想要删除完全由单个字符重复组成的单词。一个有效的方法是使用集合。我们将每个单词转换成一个集合,如果它只包含一个字符,那么这个集合的长度将是1。如果是这样的话,我们可以去掉那个词,除非原来的词是由一个字符组成的。你知道吗
输出
下面是新版本问题的代码,您希望删除包含任何重复字符的单词。这个比较简单,因为我们不需要对一个字符的单词进行特殊测试。。你知道吗
输出
如果重复必须是连续的,我们可以使用^{} 来处理。你知道吗
输出
相关问题 更多 >
编程相关推荐