Оператор return завершает работу цикла. Как можно исправить код в моём случае?
Вот мой код:
def SWHL_command():
response = requests.get("http://www.swhl.ru/tournament/1026071/teams")
soup = BeautifulSoup(response.content, "lxml")
commands_names = soup.find_all("a", class_="teams__name-link")
for commands_name in commands_names:
c = commands_name.text.strip()
return c
print(SWHL_command())
Ожидаемый мною результат:
Hockey Dads
Red Tigers
Silk Way Star
Варяг-2
Но на деле результат следующий:
Hockey Dads
Как это исправить?
Ответы (3 шт):
Автор решения: Nonen_Hook
→ Ссылка
Надо сохранить результат и вернуть по завершению цикла:
def SWHL_command():
response = requests.get("http://www.swhl.ru/tournament/1026071/teams")
soup = BeautifulSoup(response.content, "lxml")
commands_names = soup.find_all("a", class_="teams__name-link")
res = list()
for commands_name in commands_names:
c = commands_name.text.strip()
res.append(c)
return res
print(SWHL_command())
Автор решения: Cisco
→ Ссылка
Можно заносить данные в список, а потом уже вытаскивать из него.
my_list = []
for commands_names in commands_names:
my_list.append(commands_names.text.strip())
return my_list
Автор решения: Анонимный Паша
→ Ссылка
Решение с использованием PEP:
return [x.text.strip() for x in commands_names]