【问题标题】:Python - Passing a list from one function to anotherPython - 将列表从一个函数传递到另一个函数
【发布时间】:2018-11-08 04:19:50
【问题描述】:

尝试将列表从一个函数传递给另一个函数(teamurls),然后我将在另一个程序中使用它。我有我的程序在使用产量有一个价值输出的地方工作。 (产生 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()

【问题讨论】:

  • 一个对象可以包含多个对象。无论如何,(正确)格式的问题通常会更好。
  • 你的 first 函数是在哪里定义的?
  • 顶部的代码(def team_urls()之前)是一个方法吗?
  • yield 需要在函数内部。
  • 我可以建议你做官方的 Python 教程吗?从函数中获取值并将参数传递给函数真的是编程 101 题...

标签: python list function


【解决方案1】:

要将值传递给方法,请使用参数:

team_urls(teamurls)

您需要在 team_urls 的定义中指定该参数:​​

def team_urls(teamurls):

【讨论】:

  • 是的,我试过了,得到了 TypeError: team_urls() missing 1 required positional argument: 'teamurls'
  • @anfield 我假设你了解 Python 的基本约定。检查编辑。
  • @anfield 你仍然需要在函数调用中放入一个值,以便将该值传递给函数!
猜你喜欢
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 2022-01-13
相关资源
最近更新 更多