сравнить конкретную строку со словом python - PullRequest
0 голосов
/ 11 ноября 2018

скажем, у меня есть определенная строка и список строк. Я хотел бы добавить в новый список все слова из списка (из строк) которые в точности соответствуют шаблону для пример :

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

помощь будет высоко ценится:)

1 Ответ

0 голосов
/ 12 ноября 2018

Если ваш шаблон так же прост, как _c__ye_ , то вы можете искать символы в определенных позициях:

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))

Выход:

print(result1) # ['aczxyep', 'zcisyef']
print(result2) # ['aczxyep', 'zcisyef']
...