2017-04-25 14 views
1

を使用するだから私は、リストの次のリストを持っている:ループとi番目のイテレータ

test = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

私は内側のリストのi番目の要素をループしたいと思います。私はzipを使用してこれを行うことができます。

for x, y, z in zip(test[0], test[1], test[2]): 
    print(x, y, z) 

返す:

1 4 7 
2 5 8 
3 6 9 

はこれを行うには、よりクリーンでPython的な方法はありますか?何かzip(test, axis=0)のようなもの?あなたは単純に配列のtransposeを使用して行を反復処理することができますnumpy.array使用する場合

+4

'(とあなたがPARAMS合格するのx、y、zのCOORDSについて同じことを行うことができますprintへ)(*テスト) : ' –

答えて

4

あなたの入力のサブリストを渡すためにアンパックを使用することができます変数引数としてzipへ:

for xyz in zip(*test): 
    print(*xyz) 

ジップでのx、y、zのための

+0

これはまさに私が探していたものでした。ありがとう! – u2berggeist

0

その後

>>> import numpy as np 
>>> test = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
>>> t = np.array(test) 
>>> t 
array([[1, 2, 3], 
     [4, 5, 6], 
     [7, 8, 9]]) 

for row in t.T: 
    print(row) 

[1 4 7] 
[2 5 8] 
[3 6 9] 

は、あなたがするつもり何によって反復するために、numpyは可能性が高くなりますリスト内包全体よりも効率的です

+0

主な質問は、個々の値を印刷時よりもそれぞれの変数に入れることです。しかし、ありがとう! – u2berggeist

関連する問題