私は、数独ゲームのような四角形でなければならないリストとそのコンポーネントもリストであり、出力として入力を取る手続き(対称(p))を作成しようとしています「正方形」が対称であるかどうかを示す真または偽の値。基本的な数独のようなプログラム
最初の行が最初の列と等価であり、2番目の行が2番目の列と等価である場合、正方形は対称です。さて、私はコードを書いたが動作しません。その出力は常にTrueです。コードの貼り付けは次のとおりです。
def column_building(list, position):
column = []
for i in list:
column.append(i[position])
return column
a = [[1, 2, 3],
[2, 3, 4],
[3, 4, 1]]
b = [["cat", "dog", "fish"],
["dog", "dog", "dog"],
["fish","fish","cat"]]
def symmetric(p):
counter = 0
for e in p:
if e == column_building(p, counter):
counter = counter + 1
return True
else:
return False
break
print symmetric(b)
コードでは、最初の手順では、決定された位置の列がわかります。 a
とb
は、例として使用するために作成したリストです。そして、私が言ったように、常にTrueを出力しますが、e
がリストの2番目の要素であるb
を使用すると、2番目の位置([dog, dog, fish]
)で構築された列と等しくありません。
はい、これが最良の答え1です。タプルを含むリストの場合は単にリスト(zip(* b))になるので、これは代替の可能性があります。 ** list(zip(* b))== list(map(tuple、b))** –
助けてくれてありがとう!しかし、私はpythonの魔法(haha)のこの事の本当の初心者なので、私はそれらの関数を学んでいないので、私はそれらなしで活動を並べ替える必要があります。 –