python - Python - 将列表从一个函数传递到另一个函数
问题描述
尝试将列表从一个函数传递到另一个函数(teamurls),然后我将在另一个程序中使用它。我有我的程序在使用产量有一个价值输出的地方工作。(yield full_team_urls)如何将列表从第一个函数传递到第二个函数(def - team_urls)还有可能返回列表并继续使用yield吗?每个函数只能返回或输出一个对象吗?
编辑:尝试将 teamurls 传递给第二个函数,如下所示,我收到错误 - TypeError: team_urls() missing 1 required positional argument: 'teamurls'>
def table():
url = 'https://www.skysports.com/premier-league-table'
base_url = 'https://www.skysports.com'
today = str(date.today())
premier_r = requests.get(url)
print(premier_r.status_code)
premier_soup = BeautifulSoup(premier_r.text, 'html.parser')
headers = "Position, Team, Pl, W, D, L, F, A, GD, Pts\n"
premier_soup_tr = premier_soup.find_all('tr', {'class': 'standing-table__row'})
premier_soup_th = premier_soup.find_all('thead')
f = open('premier_league_table.csv', 'w')
f.write("Table as of {}\n".format (today))
f.write(headers)
premier_soup_tr = premier_soup.find_all('tr', {'class': 'standing-table__row'})
result = [[r.text.strip() for r in td.find_all('td', {'class': 'standing-table__cell'})][:-1] for td in premier_soup_tr[1:]]
teamurls = ([a.find("a",href=True)["href"] for a in premier_soup_tr[1:]])
return teamurls
for item in result:
f.write(",".join(item))
f.write("\n")
f.close()
print('\n Premier league teams full urls:\n')
for item in teamurls:
entire_team = []
# full_team_urls.append(base_url+ item)
full_team_urls = (base_url + item + '-squad')
yield full_team_urls
table()
def team_urls(teamurls):
teams = [i.strip('/') for i in teamurls]
print (teams)
team_urls()
解决方案
要将值传递给方法,请使用参数:
team_urls(teamurls)
您需要在定义中指定该参数team_urls
:
def team_urls(teamurls):
推荐阅读
- sql - 如何让 DBMS 检查 WHERE 部分中的所有条件?
- php - PHP CURL - Apple 推送通知服务器
- spring - Spring webflux 安全性与后端的模拟用户
- c# - 一次加载图像数量
- r - 使用R按升序合并数据
- hadoop - 如何理解 hadoop mapred.min.split.size 和 minSplitSize?
- mysql - SQL:根据不同的条件选择不同的列集显示
- c++ - 如何自动矢量化一个循环,该循环 1)修改数组,2)指示数组最后是否更改?
- lua - Win 10 中的 LuaRocks 安装什么也不做
- c - 为什么 Clang 接受 `static const` 作为 case 标签但 GCC 不接受?