-10

以下は Python2.7 で記述された for ループで、Python3.3 で実行すると構文エラーがスローされます。私はこの言語を初めて使用しますが、これがどのような for look であるかを理解するのに何か助けが欲しいですか? ありがとう。:)

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

実行中に xrange() を range() に変更しました。「links」は URL のリストです。

4

2 に答える 2

3

Python 3.3 では、xrangeはサポートされていません。範囲を使用するようにステートメントを変更する必要があります。

Python 2.X の range とは異なり、xrangeはイテレータを返しますが、as rangeはリストを返します。Python 3.X では xrange が削除され、代わりに範囲がイテレータを返すようになりました

于 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 に答える