Как следует из названия, я пытаюсь найти значения в dict в строке. Это относится к моему посту здесь: Python dictionary - valueПоиск строки для значений, присутствующих в dict
Мой код-то вроде следующим образом:
import mechanize
from bs4 import BeautifulSoup
leaveOut = {
'a':'cat',
'b':'dog',
'c':'werewolf',
'd':'vampire',
'e':'nightmare'
}
br = mechanize.Browser()
r = br.open("http://<a_website_containing_a_list_of_movie_titles/")
html = r.read()
soup = BeautifulSoup(html)
table = soup.find_all('table')[0]
for row in table.find_all('tr'):
# Find all table data
for data in row.find_all('td'):
code_handling_the_assignment_of_movie_title_to_var_movieTitle
if any(movieTitle.find(leaveOut[c]) < 1 for c in 'abcde'):
do_this_set_of_instructions
else:
pass
Я хочу, чтобы пропустить программу, содержащуюся под if
блока (обозначенном выше как do_this_set_of_instructions
), если строка хранится в movieTitle
содержит любой из строк (или значений, если хотите) в файле leaveOut
.
До сих пор мне не повезло с any(movieTitle.find(leaveOut[c]) < 1 for c in 'abcde'):
, поскольку он всегда возвращает True, а do_this_set_of_instructions всегда выполняется независимо.
Любые идеи?
Благодарим, что вариант списка работает для меня. Я попытался сделать это с помощью dict из-за ошибки, с которой я столкнулся раньше, поэтому я подумал, что dict был бы обходным путем ... –
Кстати, это чувствительный к регистру? Например, если подстрока в переменной 'movieTitle' была« cat », но я указал« Cat »в моем списке, будет ли это еще идентифицировано или мне нужны как« Cat », так и« cat »в моем списке? –
@I_lost_my_last_account: Используйте 'movieTitle.lower()' вместо 'movieTitle' в генераторе. – Blender