2016-08-26 3 views
1

私はPythonでコードに始めていると私は、このコードスニペットに出くわした:私は、他のプログラミング言語でそれのようなものを見たことがなかったので、私は何が起こっているのか理解できない行1でリストのあるループの場合は?

for [x, y] in L: 
    for ix in range(-1, 2): 
     for iy in range(-1, 2): 
      cir = pylab.Circle((x + ix, y + iy), radius=sigma, fc='r') 
      pylab.gca().add_patch(cir) 

。これはどうですか?

for [x, y] in L: 

[x、y]はリストですか?知りません。

答えて

0

はい、[x, y]は2つの要素を持つリストです。ループが機能するためには、Lは、2つの要素を持つ一連のリストを含むリスト(または他の反復可能なデータ構造)でなければなりません。これらのリストのうちの1つが[x, y]にコピーされるたびに、xyの個々の値がループの本体で使用されます。

はこれを試してみて、それが理にかなっているかどうかを確認:巡回できない2つの要素で

L = [ [1, 2], [3, 4] ] 

for [x, y] in L: 
    print x 
    print y 
+0

母はとても簡単になります。ありがとう – altarbza

+1

ブラケットも不要です。 'for x、y in L:'は動作します。 –

+0

@MarkTolonenは[x、y]、x、yと(x、y)の間に違いがありますか? – altarbza

1

Lはリスト(またはタプル)の配列でなければなりません。したがって、L:の[x、y]が実行されるたびに、シーケンス内の各アイテムを1つずつピックしてループに入ります。

シーケンスがfor [x,y] in L:が実行されるときに何が起こるか今ここL = [[2,3], [4,5], ['Jeff', 7]] も聞かせては以下のとおりです。 - シーケンスの最初のリスト[2,3]は、それぞれxyとしてピックアップして割り当てられます。そして次の反復では、xyはそれぞれ4 &の値を得ます。賢明のような3回目の反復xJeffなり、yは7

L = [[2,3], [4,5], ['Jeff', 7]] 
count = 0 
for [x,y] in L: 
    count += 1 
    print " Iteration :- %d, \t x :- %s, \t y:- %s" %(count, str(x), str(y)) 
関連する問題