import re
arr = ['annotate','color','october','cellular','wingding','appeasement','sorta']
result = [w for w in arr if not re.search(r'(\w)\1', w)]
print(result)
words = ['annotate','color','october','cellular','wingding','appeasement','sorta']
for index, word in enumerate(words):
last = None
for letter in word:
if letter == last:
del words[index] # Double letters, so delete from the list.
last = letter
print(words)
words = ['annotate','color','october','cellular','wingding','appeasement','sorta']
[w for w in words if all(a != b for a, b in zip(w, w[1:]))]
# ['color', 'october', 'wingding', 'sorta']
import re
def filter_words(input_list):
output_list = []
pattern = r'(.)\1' # Regex pattern to match consecutive identical characters
for word in input_list:
if not re.search(pattern, word):
output_list.append(word)
return output_list
# Example usage:
input = ['annotate', 'color', 'october', 'cellular', 'wingding', 'appeasement', 'sorta']
output = filter_words(input)
print(output)
即使不使用Regex,也可以使用Python语言的一个特性来构造answer using nested loops的变体,即在循环中使用else子句。 在Python中,循环语句可以有一个else子句,该子句在循环结束时通过耗尽iterable来执行,但在循环被break语句终止时不执行。这允许以下算法:
input = ['annotate','color','october','cellular','wingding','appeasement','sorta', 'watt']
output = []
for word in input:
for idx, char in enumerate(word[1:]): # Iterate over the enumeration from the second to the last character of the word
if word[idx] == char: # Check if the char is equal to the previous character in the word
break # It interrupts the loop and the `else` clause is not executed
else:
output.append(word)
print(output)
#['color', 'october', 'wingding', 'sorta']
6条答案
按热度按时间xyhw6mcr1#
您可以使用像这样简单的正则表达式。这个答案扩展了你提到的帖子,以满足你的要求。
字符串
它适用于word字符,其中包括:
a-z, A-Z, 0-9, _
的。rqcrx0a62#
你可以使用正则表达式来实现这个.
字符串
m528fe3b3#
使用嵌套循环检查每个单词是否有双字母:
该解决方案可能比基于RegEx的解决方案更容易理解。
字符串
输出量:
型
这段代码只是检查每个单词是否有双字母,如果确实有双字母,则将其从
words
列表中删除。* 请注意,如果您将变量命名为input
*,则会出现问题。50pmv0ei4#
您可以通过压缩单词本身来比较相邻字符。这使得一个相当简洁的列表理解:
字符串
zip(w, w[1:])
将生成像[('a', 'n'),('n', 'n'), ('n', 'o')...]
这样的字母元组,然后您可以比较,任何相等的字母都表示一行中的同一个字母。798qvoo85#
字符串
输出量:
型
tv6aics16#
即使不使用Regex,也可以使用Python语言的一个特性来构造answer using nested loops的变体,即在循环中使用else子句。
在Python中,循环语句可以有一个
else
子句,该子句在循环结束时通过耗尽iterable来执行,但在循环被break
语句终止时不执行。这允许以下算法:字符串
online