Python遍历一个列表:把一个循环变成一个列表 python

关于Python遍历一个列表的问题,在for loop python list中经常遇到, 下面是我的代码:我试图把我从这个代码得到的循环结果变成一个列表。

是我的代码:我试图把我从这个代码得到的循环结果变成一个列表。

import requests
from bs4 import BeautifulSoup
page = requests.get('http://forecast.weather.gov/MapClick.php?lat=37.7772&lon=-122.4168')
soup = BeautifulSoup(page.text, 'html.pr')
for x in soup.find_all(class_='tombstone-container'):
    y = (x.get_text())
    print (y)
3

for循环的结果转换为列表的直接方法是列表理解

我们可以转换:

for x in soup.find_all(class_='tombstone-container'):
    y = (x.get_text())
    print (y)

分为:

result = [x.get_text() for x in soup.find_all(class_='tombstone-container')]

基本(列表理解有更高级的语法)作为语法:

[<expr> for <var> in <iterable>]

它构造一个列表,Python 将遍历<iterable>并将值分配给<var>,它为每个<var> in <iterable><expr>的结果添加到列表中。

3

如果你不想改变你的代码,在你的循环之前创建一个空列表

myList = []

和在你的循环追加这样的内容:

myList.append(str(x.get_text())) # EDIT2

EDIT1:我使用myList.append(...)而不是myList[len(myList)]或类似的原因,是因为你必须使用 append 方法来扩展已经存在的列表与新内容。

EDIT2:关于您的列表中没有指针的问题:如果您的列表在 for 循环后打印时看起来像[None, None, ...],您现在可以确定您仍然有一个字符串列表,并且它们包含单词 None(像这样['None','None',...])。这意味着您的x.get_text()方法没有返回任何字符串,而是从一开始就埋了一个 None 指针。

以防万一。一个完整的例子是:

myList = []
for x in soup.find_all(class_='tombstone-container'):
    # do stuff, but make sure the content of x isn't modified
    myList.append(str(x.get_text()))
    # do stuff
2

只是循环它。

map(lambda x: x.get_text(), soup.find_all(class_='tombstone-container'))

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(118)
初学c语言用什么编程软件:为什么Node.js是用 C/C++编程语言编写的
上一篇
Curl in it:curlCLI到phpcurl
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(73条)