목록 인 입력이 행과 같은 양의 열과 같은 양의 파트로 구성된 2D인지 확인하는 방법을 찾아야합니다. 예 : [[4,5],[4,5,6]] and [[2,3],[6,1],[2,9]]
은 오류 메시지를 생성합니다. 그러나 [[3,4,5],[4,6,8],[5,8,-1]] and [[4,5],[4,1]]
이 맞을 것입니다.파이썬으로 2D 매트릭스에 대한 입력을 확인하는 데 도움이 필요합니다
for row in square:
if len(row) != len(square):
return False
을하지만 아주 잘 작동하지 않습니다 나는 노력했다.
EDIT : 또한이 검사는 검사 목록의 시작 부분에 있으므로 if 문 형식이어야합니다. 반환 값이 테스트는 경우가 있습니까
def is_square(matrix):
return all(len(row) == len(matrix) for row in matrix)
"하지만 제대로 작동하지 않습니다."- 왜 안 되니? 그것이 올바르게 작동하지 않는 예를 들어 줄 수 있습니까? 어떤 오류나 예기치 않은 동작이 보이십니까? – mgilson
'len (정사각형의 행에 대해 len (행)) == 1'을보다 간결하게 시도해 볼 수 있습니다. 각 행의 열 수가 같은지 확인하십시오. –
@WaleedKhan - OP의 단락 동작이 없으며 행 길이 == 열 길이라는 것을 주장하지 않고 마지막으로 그것을 수행하는 방법에 대해 알게되었습니다. 만약 당신이 1 개의 라이너를 찾고 있다면, 행렬에'all (len (row) == len (matrix) 행렬을 제안하자. ' 그러나 그것은 여전히 OP가 원래 솔루션에 대해 잘못되었다고 생각하는 질문에 답하지 못합니다. – mgilson