私はPython FOR LOOPの複数の値がどのように機能するかを理解しようとしています。自分のテストを作成しようとしましたが、うまくいきません。どうして? ありがとう!複数の反復値を持つループの場合
私のテスト:
myList = [4, 5, 7, 23, 45, 65, 3445, 234, 34]
for i, b in myList:
print ("first= %d, second= %d" % (i, b))
私はPython FOR LOOPの複数の値がどのように機能するかを理解しようとしています。自分のテストを作成しようとしましたが、うまくいきません。どうして? ありがとう!複数の反復値を持つループの場合
私のテスト:
myList = [4, 5, 7, 23, 45, 65, 3445, 234, 34]
for i, b in myList:
print ("first= %d, second= %d" % (i, b))
は、一般的な概念は、タプルのアンパックと呼ばれる
myList = [(4, 5), (7, 23), (45, 65), (3445, 234)]
でそれを試してみてください。より簡単な例:
a, b = (1, 2)
つまりforループは必要ありません。
ありがとうございました!私はちょうどタプルのアンパックをグーグルとそれは私が不思議の目に正確に説明しています。このリンクは、誰かが興味を持っていれば、さらに徹底的に綴り出しています。http://stackoverflow.com/questions/10867882/tuple-unpacking-in-for-loops – AmericanMade
あなたが連続する要素のペアでリストを反復処理したい場合は、スライスを使用することができますスライスので、(あなたはまた、与えられた大きさの部分文字列を経由して、文字列を反復処理するためにこの種のものを行うことができます
>>> myList = [4, 5, 7, 23, 45, 65, 3445, 234]
>>> for x,y in (myList[i:i+2] for i in range(0,len(myList),2)):
print(x,y)
4 5
7 23
45 65
3445 234
演算子は文字列にも適用されます)。たとえば、DNAやRNAを表す文字列のコドンを反復したいときには、バイオインフォマティックスでこれを行うことができます。
お知りになりたい!ありがとう! – AmericanMade
あなたが定義したものには、2つのイテレータがあるループがあります。
Pythonは最初の要素を選択し、それを繰り返すことができるかどうかを確認(例えばタプルまたは別のリスト)と、このiteratable elemementにb
を割り当てるであろう次いでmyList
の要素を反復とi
この値を割り当てます。
for i, j in l:
print i, j
、あなたは
1 1
2 2
なぜでしょう。この場合
は、あなたがすることができるのは、次にmylist= [(1,1), (2,2)]
を言わせて?なぜなら、2番目の要素はイテレータであり、内部要素をループしてprint関数に吐き出すからです。あなたが別のリストから複数の変数を取得したい場合は、あなたにとても一般的な答えあなたが(例えば)
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
for i, j in zip(list1, list2);
print i, j
(同じ長さである必要があります)
(それはループのための別の「隠れた」を行います)質問はIterators + Python magic
です(これは尋ねていないことを意味します)
詳細をありがとう!私は、あなたが2番目のものがイテレータである方法について少しの説明を追加したのが好きです。それは私が何が起こっているか見るのに役立ちます。 – AmericanMade
あなたのリストに '(i、b)'のタプルがありません –