저는 Udacity를 사용하여 약 한 달 동안 프로그래밍과 Python을 배웠습니다. 스도쿠리스트가 전달되었는지를 검사하는 함수를 작성해야하는 질문들 중 하나를 위해서. 아래 for 루프에서 오타를 만들었으므로 파이썬 함수가 여전히 작동합니다. 왜?
, 나는zip()
를 사용하여 원본과 전치 목록 모두 동시에
row
및
col
을 반복하고 싶었지만 실수로 내
or
문 하반기에
row
에 남아. 나는 그것을 도망 갔고 놀랍게도 여전히 정확한 답을 되찾았다.
def check_sudoku(array):
is_sudoku = True
reference = range(1, len(array) + 1)
transposed = zip(array)
for row, col in zip(array, transposed):
if sorted(row) != reference or sorted(row) != reference:
is_sudoku = False
break
return is_sudoku
내 생각 엔 내가 기본적으로 is_sudoku = True
을 정의하기 때문에 그것의, 그리고 내 트랜스가 작동하지 않은 경우에도이 잘못된 값을 잡는다 그래서 나는 참조 목록 rows
을 비교하고있다. 내가 두 번째 row
을 col
으로 바꿨을 때, 그것은 망가졌습니다.
내 질문은 내 생각에 맞습니까? 그렇지 않은 경우이 코드가 작동하는 이유는 무엇이며 어떻게 작성할 수 있습니까?
감사합니다. (내가 전달한 목록을 보려는 경우 코드 패드에 붙여 넣음 - http://codepad.org/IXDlZuUu)
나는 그것이 작동하게하려면'zip (array)'을'zip (* array) '으로 바꿔야한다고 생각합니다. – phant0m
nvm, 분명히 py3k에만 관련이 있습니다 – phant0m