-10

下面是一个用 Python2.7 编写的 for 循环,它在 Python3.3 中执行时会引发语法错误。我是这门语言的新手,想了解一下这是什么样的外观?谢谢。:)

for link in (links.pop(0) for _ in xrange(len(links))):

我在执行时将 xrange() 更改为 range()。'links' 是一个 url 列表。

4

2 回答 2

3

在 Python 3.3 中,不支持xrange 。您需要更改语句以使用范围。

xrange与 Python 2.X 中的 range 不同,它返回一个迭代器,而range返回一个列表。在 Python 3.X 中,xrange 已被删除,取而代之的是 range 现在返回一个迭代器

于 2013-01-08T11:28:51.607 回答
2

这与 非常相似for link in links:,那么您为什么要这样做?除此之外,它在 python3 中的语法是正确的,如果你说你替换了xrange.

如果您想消费links,您可以执行以下操作:

links=[1,2,3,4,5]
links.reverse() #If the order matters
while links:
    print(links.pop())
    print(links)

出去:

1
[5, 4, 3, 2]
2
[5, 4, 3]
3
[5, 4]
4
[5]
5
[]
于 2013-01-08T11:29:52.710 回答