用于循环扩展的python

bad*_*0re 0 python

我想知道为什么for循环没有扩展它的迭代:

    for link in frontLinks:  
        #try:           
        getCurlink = self.getHref(link) # get current site links
        #print getCurlink
        #print frontLinks 
        if getCurlink:
            frontLinks = frontLinks + getCurlink
Run Code Online (Sandbox Code Playgroud)

这一行:

frontLinks = frontLinks + getCurlink
Run Code Online (Sandbox Code Playgroud)

不适用于"for"循环的frontLinks.有任何想法吗??

Ned*_*der 7

for循环计算它的表达式一次,得到一个迭代器.稍后,您将名称重新绑定frontLinks为新列表.新列表与for循环没有任何关系.

虽然在迭代它时修改列表很棘手,但是可以添加到列表的末尾,它可以正常工作.将您的最后一行更改为:

frontLinks.extend(getCurlink)
Run Code Online (Sandbox Code Playgroud)

  • @Dubslow:这可以从badc0re的代码中推断出来 - 两个参数都需要在`frontlinks + getcurlink`中列出. (3认同)
  • 我正在使用列表,所以它是扩展. (2认同)