2011-12-31 8 views
1

リストのリストがあり、このリストの特定のインデックスから複数の小さなリストを作成したいと思います。この大きな「行列」があれば、この行列から集められた整数からなる小さなリストを作成できますか?リストのリスト内の特定のインデックスからリストを作成する

コード:

matrix = [ 
    [0, 0, 0, 5, 0, 0, 0, 0, 6], 
    [8, 0, 0, 0, 4, 7, 5, 0, 3], 
    [0, 5, 0, 0, 0, 3, 0, 0, 0], 
    [0, 7, 0, 8, 0, 0, 0, 0, 9], 
    [0, 0, 0, 0, 1, 0, 0, 0, 0], 
    [9, 0, 0, 0, 0, 4, 0, 2, 0], 
    [0, 0, 0, 9, 0, 0, 0, 1, 0], 
    [7, 0, 8, 3, 2, 0, 0, 0, 5], 
    [3, 0, 0, 0, 0, 8, 0, 0, 0], 
    ] 
list1 = ([index 1, row 1], [index 2, row 2]) 
list2 = ([index 3, row 6], [index 7, row 9]) 
etc. 

私はPythonでこれを正しくどのように行うだろう。実際にカッコ内に入るものを記入してください。

ありがとうございます!

+0

'' list1''と '' list2''は何から成っていますか?それらは非ゼロ要素のリストであると考えられていますか?もしそうなら、グループ分けを決定するのは何ですか? – jterrace

+0

list1とlist2は、行列の要素で構成されているものとします。 – chingchong

答えて

4

index1がFIRSTインデックスを意味する場合、row1は最初の行を意味し、 この場合、matrix [0] [0] = 0です。 行列は、[1] [0] 8 行列[1]〜[5] =全てにおいて7

、あなたが行うことができます行列[ROW_INDEX] [col_index]

だから、リスト1 = [行列[0,0 = ]、行列[2] [2]

これは役立ちます。

4
list1 = [matrix[1][1], matrix[2][2]] 
list2 = [matrix[6][3], matrix[9][7]] 

等...

2

あなたは基本的にここにリストのリストを持っています。

listname[index] 

SOが....

matrix[0]はあなたに[0, 0, 0, 5, 0, 0, 0, 0, 6]

matrix[0][0]あなたを与えるだろう0 ....つまり、ゼロ番目の要素を与える:あなたは、リスト内の項目を呼び出します0番目のリストの

リストの「最初の」要素は、実際には0番目の要素です。だからmatrix [1]はあなたのリストに "second"を与えます。また

list1 = [matrix[1][1], matrix[2][2]] 
list2 = [matrix[6][3], matrix[9][7]] 

あなたがより良い質問を助けるためにノート...あなたが与えた例はリストを呼ぶが、あなたの例では、タプルを表し、括弧でグループ化された項目です。リストは角カッコで示されます。このような[]

+0

括弧のポイントは、それがタプルであると言っていないように修正する必要がある部分を示すことでした。 – chingchong

0

何か:

newmatrix = [] 
for n,i in enumerate(matrix[0]):# assuming the lists are in the same length 

    templist =[] 
    for l in matrix: 

     templist.append(l[n]) 
    print "templist: ",n,"content: ",templist 
    newmatrix.append(templist) 

編集:ちょうど私はcompletly質問を読み違えることに気づきました。関連性のない回答、申し訳ありません。おそらくこれが他の人にとって適切かもしれないので、削除しないでください

関連する問題