说我有一个特定的字符串和一个字符串列表。 我想将列表(字符串)中的所有单词添加到新列表中 就像图案一样 对于示例:
list of strings = ['string1','string2'...]
pattern =__letter__letter_ ('_c__ye_' for instance)
我需要在与模式相同的位置添加所有由相同字母组成的字符串,并且字符串的长度相同。 例如:
new_list = ['aczxyep','zcisyef'...]
我已经尝试过了:
def pattern_word_equality(words,pattern):
list1 = []
for word in words:
for letter in word:
if letter in pattern:
list1.append(word)
return list1
帮助将不胜感激:)
答案 0 :(得分:0)
如果您的图案很简单,例如 _c__ye _ ,那么您可以在特定位置查找字符:
TextInputLayout
如果您的模式变得越来越复杂,则可以开始使用regular expressions:
words = ['aczxyep', 'cxxye', 'zcisyef', 'abcdefg']
result1 = list(filter(lambda w: w[1] == 'c' and w[4:6] == 'ye', words))
输出:
pat = re.compile("^.c..ye.$")
result2 = list(filter(lambda w: pat.match(w), words))
答案 1 :(得分:0)
这有效:
words = ['aczxyep', 'cxxye', 'zcisyef', 'abcdefg']
pattern = []
for i in range(len(words)):
if (words[i])[1].lower() == 'c' and (words[i])[4:6].lower() == 'ye':
pattern.append(words[i])
print(pattern)
首先定义单词和模式列表。然后,使用words
在len(words)
中循环查找项目数量。然后,通过查看第二个字母是否为c以及第5个和第6个字母是否为y和e,来确定i
项号是否遵循该模式。如果是这样,那么它将把该单词附加到模式上,并将其全部打印出来。