1

プログラムで 2D リストとして入力された大きなタイルセットの特定の要素を引き出す正しい方法をテストする簡単な方法として、Python シェルに次のコードを入力しました。

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

そして、それをテストしようとすると、私はこれを得ました:

->>>test1 = test[:][2]

->>>test1

[7, 8, 9]

入力から、test[:][2]test1が返されることを期待していました[3,6,9]

なぜ私が[7,8,9]代わりに得たのか誰かが私に説明できますか?

また、どのように出力を取得するか説明できれば[3,6,9]?私は次のように言うことができることを知っています:

>>>test1 = [ test[0][2], test[1][2], test[2][2] ]

しかし、自分のプログラムのコンテキストでそれを書いた場合、その行はずっと長くなり、維持するのが難しくなります. 上記の方法よりも簡単に取得できる方法がある場合は、それを取得するため[3,6,9]の洞察をいただければ幸いです。

4

2 に答える 2

5

標準のpythonの場合、これを行うことができます:

>>> test = [[1,2,3],[4,5,6],[7,8,9]]
>>> [x[2] for x in test]
[3, 6, 9]
>>> 

に関してはtest1 = test[:][2]、それtest[:]はちょうど等しいからですtest編集: 実際には、それはの正確なコピーでtestあり、同じリストではありません

numpyライブラリも見てください。

于 2013-07-10T06:08:40.850 に答える
0

test[:]のコピーを返すtestので、[[1,2,3],[4,5,6],[7,8,9]]. そうtest[:][2]です[7,8,9]。リスト内包表記を使用すると、必要なものを簡単に取得できます。

>>> [x[2] for x in test]
[3, 6, 9]
于 2013-07-10T06:09:48.560 に答える