为什么我的函数只循环遍历列表中的三个元素

时间:2011-08-02 03:53:00

标签: python loops

我正在尝试遍历列表中的所有元素(其中8个),但我的功能只向我提供了4个。这是我作为个人项目的应用程序。

import urllib


def get_followers():
    count = 0
    link = ['http://twitter.com/statuses/user_timeline.xml?screen_name=beratmahmuzlu',     'http://twitter.com/statuses/user_timeline.xml?screen_name=lidiazuin', 'http://twitter.com/statuses/user_timeline.xml?screen_name=kelewele_boham', 'http://twitter.com/statuses/user_timeline.xml?screen_name=AwangHafizam', 'http://twitter.com/statuses/user_timeline.xml?screen_name=BRAYANLVN', 'http://twitter.com/statuses/user_timeline.xml?screen_name=zezol_pl', 'http://twitter.com/statuses/user_timeline.xml?screen_name=brysonwong', 'http://twitter.com/statuses/user_timeline.xml?screen_name=racsozara']
    while count < len(link):
        print link[count]
        link.pop()
        count = count + 1

3 个答案:

答案 0 :(得分:9)

您正在弹出列表并将循环基于列表计数。

尝试使用for循环:

for lnk in link:
    print lnk

答案 1 :(得分:3)

link.pop()删除一个元素,len(link)在每次迭代时为你提供列表的新长度,因此仅通过列表的一半循环。

def get_followers():
    count = 0
    link = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    l = len(link)
    while count < l:
        print link.pop()
        count = count + 1

这是正确的实现,虽然有更多更简洁的方法来迭代python中的列表,这是最简单的方法之一:

def get_followers():
    link = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    for l in link:
        print l

答案 2 :(得分:1)

  

我正在尝试遍历列表中的所有元素(其中8个)

然后这样做。不要设置计数器变量,重复使用它来索引列表,从列表中删除元素并递增计数器。只需遍历元素。

如果我要求你打破一打鸡蛋,你就不需要在上面写数字,或者想想你已经破了多少个鸡蛋。你只是这样做。

所以就这样做。

for link in links:
    print link