2013-01-08 60 views
-8

下面是寫在Python2.7一個for循環,並同時Python3.3執行它拋出一個語法錯誤。我對這種語言很陌生,希望得到任何幫助,以瞭解這是什麼樣的外觀?謝謝。 :)語法錯誤嵌套for循環Python中

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

我在執行時已將xrange()更改爲range()。 '鏈接'是一個網址列表。

+1

有什麼實際** **中的for循環? – Volatility

+2

這不是一個嵌套循環,它與[發電機表達式]環(http://www.youtube.com/watch?v=pShL9DCSIUw)。這些是不同的事情。另外請注意,這是循環一些東西的可怕方法。另外,當你遇到錯誤時,發佈實際的錯誤,那麼看看問題是多麼容易。 –

+0

「它正在拋出語法錯誤」。哪一個?它看起來如何? – glglgl

回答

3

在Python 3.3,xrange不支持。您需要將語句更改爲使用範圍。

xrange不像範圍在Python 2.X返回迭代,其中作爲range返回一個列表。 在Python 3.X中,xrange已被刪除,而現在範圍返回一個迭代器

+0

嗨Abijit,是的,我已經用範圍代替了xrange,但仍然存在語法錯誤。除此之外,以上for循環句法正確嗎? – user1957908

+0

@ user1957908:在這個循環中沒有其他語法問題,除了這種方式無用的寫循環外。請參閱根的答案。請參閱[Ideone分享](http://ideone.com/zrvTiT) – Abhijit

2

這與for link in links:非常相似,那麼爲什麼要這麼做呢?除此之外,如果你說你替換了xrange,它在python3語法上是正確的。

如果你想消費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 
[] 
+0

是略微不同,如'links'將在本月底空 - 但它仍然是一個可怕的想法。 –

+0

@Lattyware - 是的,如果op真的想要使用這個列表,請添加一個例子。 – root