2012-03-14 14 views
-1

私は次の形式のリストの行列を持っています。Pythonを使用して、リスト要素を含む行列から項目を抽出して印刷します。

[[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
] 

のPythonを使用して、Iは、内側のリストのそれぞれからの1つの項目を抽出し、マトリックスを印刷したい([F、G、H、C])。たとえば、各内部リストからc要素を抽出します。

[[c,c,c,c,c,c], 
[c,c,c,c,c,c], 
[c,c,c,c,c,c], 
[c,c,c,c,c,c], 
[c,c,c,c,c,c]] 
+1

ええ、あなたは何を試してみましたが、私はまた、あなたが達成したい何をすべきか理解に問題がありますか?どの要素をリストから抽出しますか?第4要素ですか? 1つは、char 'c'で始まりますか? – bpgergo

答えて

2
print([[x[3] for x in y] for y in matrix]) 
+0

ありがとうございます。これは完璧です。 – user1269272

+0

あなたは大歓迎です。おすすめの読書:[チュートリアル](http://docs.python.org/tutorial/datastructures.html#nested-list-comprehensions) – Will

2

おそらくnumpyを使用しますか?

>>>a = [[range(4) for _ in range(4)] for _ in range(4)] 
>>>import numpy 
>>>b = numpy.array(a) 
>>>b 
array([[[0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3]], 

    [[0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3]], 

    [[0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3]], 

    [[0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3], 
    [0, 1, 2, 3]]]) 
>>>a[:, :, -1] 
array([[3, 3, 3, 3], 
    [3, 3, 3, 3], 
    [3, 3, 3, 3], 
    [3, 3, 3, 3]]) 
2
f,g,h,c = (1,2,3,4) 

matrix = [ 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]], 
] 

import operator 
print [map(operator.itemgetter(3), x) for x in matrix] 
関連する問題