Python将文本分配给新变量

时间:2014-05-24 03:12:08

标签: python list variables

在Python中,我使用BeautifulSoup来解析文本。我想将一组'str'对象保存到列表中。以下代码将无法运行,但应该遇到这样的想法:

listings = soup.find_all('h6')
for i in listings:
    projecturls[i] = i.find_all('a', href=True)[0]['href']

所以我想循环遍历元素'列表'并提取字符串。然后我想将这个字符串保存到projecturls中,我希望将其作为列表。但是我收到以下错误:

NameError: name 'projecturls' is not defined

我该如何定义?或者有更好的方法来做我想要的事情吗?

我认为动态定义N个变量也可以,但不是首选。

2 个答案:

答案 0 :(得分:2)

projecturls定义为列表对象,然后使用list.append方法在其中添加项目:

listings = soup.find_all('h6')
projecturls = [] # <-------------
for i in listings:
    url = i.find_all('a', href=True)[0]['href']
    projecturls.append(url) # <------

答案 1 :(得分:2)

你也可以使用列表理解:

listings = soup.find_all('h6')
projecturls = [i.find_all('a', href=True)[0]['href'] for i in listings]

map功能:

listings = soup.find_all('h6')
projecturls = list(map(lambda i: i.find_all('a', href=True)[0]['href'], listings))