Исключить список букв в строке из списка слов - PullRequest
0 голосов
/ 09 апреля 2020

У меня немного проблемы с тем, чтобы выбрать кучу букв в для l oop, которые выбирают слова в списке, которые не содержат этих букв;

Ниже код, который я пытаюсь использовать, когда я присваиваю строку только с одним символом, он печатает все слова в words.txt, которые не содержат этот символ, но если я присваиваю строку с более чем одним символом, это рассмотреть всю строку, даже используя (для буквы в строке)

def avoids_2():
    string = 'abc'
    fin = open('words.txt')
    for letter in string: 
        for line in fin:
            if letter not in line:
                word = line.strip()
                print(word) 

Пожалуйста, кто-нибудь знает, как решить?

1 Ответ

0 голосов
/ 09 апреля 2020

Проблема с вашим кодом заключается в том, что вы ищете только один символ за раз, т. Е. Если ваша буква c, она будет искать только c и печатать строки с a или b во внутреннем. л oop. Таким образом, вы можете изменить это следующим образом

fin = open('words.txt')
test_string = 'abc'
for line in fin:
    flag = False
    for letter in test_string:
        if letter in line:
            flag = True
            break
    if not flag:
        print(line.strip())


Вы также можете использовать регулярное выражение здесь

import re

fin = open('words.txt')

for line in fin:
   if re.match(r'a|b|c', line):
      continue
   print(line.strip())
...