添加 return 中的多个数据一次列出

adding multiple data in return to list at once

我想在一行中将来自 def 的 return 数据添加到多个列表中,有没有办法做到这一点?

我的代码:

def getData():
    try:
        aprovince, atown, aneighbourhood = (
            soup.find("ul", {"class": "short-info-list"}).findNext("li").text.strip(),
            soup.find("ul", {"class": "short-info-list"}).findNext("li").findNext("li").text.strip(),
            soup.find("ul", {"class": "short-info-list"}).findNext("li").findNext("li").findNext("li").text.strip()
        return(aprovince, atown, aneighbourhood)
    except:
        return False

for link in links:
    page = requests.get(link)
    soup = BeautifulSoup(page.content, "html.parser")
    if (check()):
        province.append(), town.append(), neigbourhood.append() = getData()

我不想先将 getData 中的数据 return 分配给一个变量,然后再从该变量中将其逐一添加到列表中,我不能在调用 getData 的地方直接处理这个问题吗?

(getData 实际上需要 12 个不同的数据,我在此处发布代码时对其进行了一些裁剪)

把12个数据赋值给一个临时数据,然后一个个添加到列表中,好像是代码污染

不可以,您需要将结果保存在变量中。

p, t, n = getData()
province.append(p)
town.append(t)
neighborhood.append(n)

如果你有很多列表,你可以在一个循环中完成它们:

lists = [province, town, neighborhood]
for l, d in zip(lists, getData()):
    l.append(d)