2016-04-03 43 views
1

私はリストインデックスを持つリストの要素を印刷するには?

内の各要素のインデックスを持つ要素を印刷しようとしているが、最後のインデックス

は、誰もがそれを修正することができるまで、私のインデックス0およびインデックス1を持つすべての要素を持つすべての要素プリントを実現しています、私はここで立ち往生ですか?

if __name__=="__main__": 

    r = [6, 5, 3, 3] 
    diff = [[(i,j)for i in r]for j in range(5)] 
    print(diff) 

実際の出力:

[[(6, 0), (5, 0), (3, 0), (3, 0)], [(6, 1), (5, 1), (3, 1), (3, 1)], [(6, 2), (5, 2), (3, 2), (3, 2)], [(6, 3), (5, 3), (3, 3), (3, 3)], [(6, 4), (5, 4), (3, 4), (3, 4)]] 

所望の出力:

[(6, 0),(5, 1),(3, 2),(3, 3)]

+0

出力はどのようにする必要がありますか? –

+0

[(6,0)、(5,1)、(3,2)、(3,3)] – Joe

+5

http://stackoverflow.com/q/522563/139010 –

答えて

2

enumerateをお試しください:

diff = [(i, j) for j, i in enumerate(r)] 

以下preferrable方法はzipを使用することです:

diff = list(zip(r, range(len(r)))) 
1

あなたはあなたにこのようなインデックスを持つ要素を与える、enumerateを探しています:列挙を理解する

>>> r = [6, 5, 3, 3] 
>>> output = [(val, indx) for indx, val in enumerate(r)] 
>>> output 
[(6, 0), (5, 1), (3, 2), (3, 3)] 

簡単な方法:

diff = [(r[i], i) for i in range(len(r))] 
1

enumerate()(iterableの値とインデックスの両方を取得する)によって提供される機能を求めていると思います。

r = [6, 5, 3, 3] 
print([(val, i) for i, val in enumerate(r)]) 
関連する問題