在python中递归地追加列表

时间:2015-06-30 04:11:27

标签: python list append

我有一个循环。每次循环运行时,都会创建一个新列表。我想将所有这些列表添加到一起。我的代码如下:

while i < len(symbolslist):

    html_text = urllib.urlopen('my-url.com/'+symbolslist[i]).read()
    pattern = re.compile('<a target="_blank" href="(.+?)" rel="nofollow"')
    applink = re.findall(pattern, htmltext)
    applink += applink
    i+=1

其中applink是一个列表。但是,使用当前的代码,它只会将最后两个列表添加到一起。我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

问题在于您使用applink作为变量名来存储re.findall()返回的列表,因此您最终每次都会创建一个新列表,而不是使用不同的名称和然后扩展applink以包含新列表(或使用+=)。

代码 -

applink = []
while i<len(symbolslist):

    url = "http://www.indeed.com/resumes/-/in-Singapore?co=SG&start="+str(symbolslist[i])
    htmlfile = urllib.urlopen(url)
    htmltext = htmlfile.read()
    regex = '<a target="_blank" href="(.+?)" rel="nofollow"'
    pattern = re.compile(regex)
    tempapplink = re.findall(pattern,htmltext)
    print tempapplink
    applink += tempapplink
    i+=1