2016-09-16 5 views
0

タプルとしてのキーとこれらのキーに割り当てられた値を持つ辞書があります。辞書の行と列の処理

私は、キーの位置に基づいて一連のアクションを実行します。

ここまでは私が書いたコードです。

辞書:

p={(0, 1): 2, (1, 2): 6, (0, 0): 1, (2, 0): 7, (1, 0): 4, (2, 2): 9, (1, 1): 5, (2, 1): 8, (0, 2): 3} 

所望の出力は次のようになります。以下に示すように

私は、個々の行の値を求めています。

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

私は列のために、このトリックを行うことができ、このコードを書いた:

​​

は、私は次のようにこれを行う方法を知っている:そのため、出力は次のようになります

r=[[p[(x,y)] for x in range(3)] for y in range(3)] 

コードのセット:

z=[] 
for i in range(3): 
    z.append([p[i,j] for j in range(3)]) 

それは私を与える:

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

私の質問は、ただ1つのリストの理解で行うことができますか?

ありがとうございます。

答えて

1

rのコードにxyを置き換えていると、出力されているように見えます。例えば、

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

+1

お返事ありがとうございます。私はそれを考え出した。私はあまりにも多くのコードを書いて、それで迷ってしまった。私はそれを書いたが、どこに書いたのか分からなかった。ありがとう! –

1

Iで

r=[[p[(x,y)] for y in range(3)] for x in range(3)] 

結果コード内でいくつかのことをしようとしました。私はそれを書いていましたが、それを認識せず、コードとのさまざまな組み合わせを試みました。ここで

答えは次のとおりです。

z=[[p[(i,j)] for j in range(3)] for i in range(3)] 

ありがとう!

関連する問題