ブラシタイトル11/05

昨日は疑問が、昨日怠惰な、ない要約を磨くようになったから。今日、何が物事は問題ブラシ遭遇したものに注意を払う前にではなく集計のバグを始めました。

時計回りの回転行列

整数のN×Nの行列は、アルゴリズムを書いて、マトリックスは、時計回りに90度回転させ、そこです。
次数N N×Nの行列所与A、およびマトリックスは、300 N以下を確実にするために、回転後のN×Nの行列を返します。

非常に単純マトリクス変換が、私は二回、最初の対角交換により変換行列を、それを周りに反転しました。

class Rotate:
    def rotateMatrix(self, mat, n):
        c = [[0 for i in range(0,n)] for j in range(0,n)]
        for i in range(0,n):
            for j in range(0,n):
                c[i][j] = mat[j][i]
        for i in range(0,n):
            c[i].reverse()
        return(c)

しかし、前に実際に私はどのように生成行列を知らないのpythonライブラリが付属して問題が発生しました。
開始は、次のコードによって生成され
c = mat
、これは唯一の共有メモリであることを認識し、次いでこれを使用
matrix = [[0]*n]*n
し、それだけで行を複製することを見出し、繰り返されるN行、より完成しました。
最後に、
c = [[0 for i in range(0,n)] for j in range(0,n)]
伝えので浅い参照のpythonの問題。

その後、我々は、Pythonのジッパー機能であるソリューションは、そこにある参照してください。
関数は、関数パッケージzipで、オブジェクトは、実際には、リストの要素はタプルにパッケージ化されている戻りファスナー。私たちは、リストにリストを使用することができます。

a = [1,3,4]
b = [4,5,6]
c = [4,5,6,7,8]
zip(a,b)
print(list(zip(a,b)))
print(list(zip(a,c)))

戻り値、元のリストのリストの長さが短いです。

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

減圧機能の関数としてZIP(*)、また戻ってコンテンツをZI​​P、それがリストリストに変換されなければなりません。

a = [1,3,4]
b = [4,5,6]
zipped = zip(a,b)
a1,a2 = zip(*zipped)
print(list(a1))
print(list(a2))

戻り値は、元のリストです。

[1, 3, 4]
[4, 5, 6]

タイトルはその後、ある
list(zip(*mat))
ジップオブジェクトに正方形のマットし、リストに変換します。例えば

z = [[1,2,3],[4,5,6],[7,8,9]]
a = list(zip(*z))
print(a)

出力
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
とリスト[:: --1]をリストに最初のグループに直接各列要素、リストした後、逆の動作が得られることは、逆の順序を表します。

z = [[1,2,3],[4,5,6],[7,8,9]]
for i in zip(*z):
    print(list(i[::-1]))

結果へ戻ります

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

戻る元の質問に、あなたは直接のリストを生成することができます

class Rotate:
    def rotateMatrix(self, mat, n):
        a = list(zip(*mat))
        for i in range(0,len(a)):
            a[i] = list(a[i])
            a[i].reverse()
        return(a)

私たちは、ある迅速な解決を参照してください
return([x[::-1] for x in zip(*mat)])
確かにこれは通じかもしれないが、私は、システムが採用されているかどうかを判断する方法がわからないので、私は、リターンの途中でのpython3とオンラインサイトのpython2のjupyterを走ったすべてのタプルを。これファン。

おすすめ

転載: www.cnblogs.com/Komnenos/p/python_zip.html