迭代Python循环中的“中断”如何工作

时间:2015-05-05 20:23:59

标签: python loops iteration break

新手在这里,所以请耐心等待......我已经尝试过在Python.org和谷歌上进行研究,但我仍然不清楚这里发生了什么。

基本问题是:

  1. 在以下迭代循环中做什么是休息?

  2. 为什么两个if语句都有效,即使使用“>=”而另一个使用“<=”?

  3. 为什么Feed中解析的项目数量不同?第一个解析5个项目,第二个解析6个项目。

  4. 脚本#1:

    Import feedparser
    d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
    
    for index, item in enumerate(d.entries):
        if index >= 5:
            break
        print item.title
    

    脚本#1输出:

      

    景点和声音:火焰与鸭子 - 第2场

         

    景点和声音:狂野与黑鹰 - 第2场

         Mic'd Up:Kucherov打破了他的第三个进球

         

    Mic'd Up:Kucherov打破了他的第二个进球

         

    景点和声音:首都与流浪者 - 第2场比赛

    脚本#2:

    Import feedparser
    d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
    
    for index, item in enumerate(d.entries):
        if index <= 5:
            print item.title
    

    脚本#2输出:

      

    景点和声音:火焰与鸭子 - 第2场

         

    景点和声音:狂野与黑鹰 - 第2场

         

    Mic'd Up:Kucherov打破了他的第二个进球

         

    Mic'd Up:Kucherov打破了他的第二个进球

         

    景点和声音:首都与流浪者 - 第2场比赛

         

    第1轮的最佳景点和声音

1 个答案:

答案 0 :(得分:1)

这是一个迭代文档http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml中可用条目的循环:

for index, item in enumerate(d.entries):

enumerate()调用此处将['alice', 'bob', 'frank']之类的列表转换为元组列表,其中每个元组包含列表中相应项的索引,例如[(0, 'alice'), (1, 'bob'), (2, 'frank')]

在循环中,index获取索引的值,itemd.entries分配相应的项目。第一个循环体看起来像这样:

if index >= 5:
    break
print item.title

这说,&#34;如果索引大于或等于5,则退出循环&#34;。因此,这将打印索引为0,1,2,3,4或5的项目标题,然后退出循环(即,它打印前六个条目)。

第二个循环体看起来像这样:

if index <= 5:
    print item.title

这说,&#34;如果索引小于或等于5,则打印项目标题&#34;。这将打印前六个条目,但循环将继续迭代所有剩余的条目而不打印它们