Добавить строку в новый список, если в нем нет определенных слов - PullRequest
0 голосов
/ 09 июля 2020
bad_words = ['Hi', 'hello', 'cool']
new_strings = []
for string in old_strings:
    if bad_words not in old_strings:
        new_strings.append(string)

как выполнить итерацию bad_words, чтобы не включать строки, в которых они есть?

Ответы [ 3 ]

3 голосов
/ 09 июля 2020

Используйте any() с пониманием списка:

bad_words = ['Hi', 'hello', 'cool']
new_strings = [string 
               for string in old_strings 
               if not any(bad_word in string for bad_word in bad_words)]
1 голос
/ 09 июля 2020
bad_words = ['Hi', 'hello', 'cool']
new_strings = []
for string in old_strings:
    if string not in bad_words: 
        new_strings.append(string)

ваш вопрос неясен, но я думаю, что это ответ, основанный на некоторых предположениях

0 голосов
/ 09 июля 2020

Я думаю, вы используете неправильную структуру данных. Если вам нужны уникальные значения в коллекции, вы должны использовать set вместо списка.

bad_words = {'Hi', 'hello', 'cool'} # this is a set

# now if you want to add words to this set, call the update method
new_strings = []
bad_words.update(new_strings)

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

bad_words = {'Hi', 'hello', 'cool'}
l = list(bad_words)

Для получения дополнительной информации, когда использовать проверку set / list / dict this .

...