【问题标题】:Nested print in a nested loop in python在python的嵌套循环中嵌套打印
【发布时间】:2023-04-06 20:25:02
【问题描述】:

如何创建在两个 for 循环中创建的输出?

我想要什么:

Name1
Adress1

Name2
Adress2

..

我得到了什么:

Name1
Name2

Adress1
Adress2

我已经尝试了很多,又回到了最初的状态。

名称和地址是从 HTML 文档中解析出来的,并使用 for 循环写入 txt 文件。 (在控制台的第一步)

提前谢谢你!

    with urllib.request.urlopen("file:///C:/Users/x/Desktop/test.html") as url:
        soup = BeautifulSoup(url, "html.parser")
        for name in soup.findAll("div", { "class" : "name m08_name" }):
            print(name.get_text())
        for adress in soup.findAll("div", { "class" : "adresse m08_adresse" }): 
            print(adress.get_text())     

【问题讨论】:

  • for name,address in zip(soup.findAll(...), soup.findAll(...))
  • @TomaszPlaskota 很好的答案,但你真的应该把它变成一个实际的答案,这样它就可以被投票、接受等。无论如何我会给你一个 +1。

标签: python python-3.x for-loop beautifulsoup nested-loops


【解决方案1】:

您只需保存部分结果,然后将它们压缩在一起。

请注意,您必须确保名称的数量与地址的数量完全相等。

with urllib.request.urlopen("file:///C:/Users/x/Desktop/test.html") as url:
    soup = BeautifulSoup(url, "html.parser")

    names = [name.get_text() for name in soup.findAll("div", { "class" : "name m08_name" })]
    addresses = [address.get_text() for adress in soup.findAll("div", { "class" : "adresse m08_adresse" })]
    for line in zip(names, addresses):
        print("%s\n%s" % line)

【讨论】:

  • 非常感谢! :) 它对我来说是新员工,这个“拉链”;)
猜你喜欢
  • 2019-02-27
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2017-04-24
相关资源
最近更新 更多