2017-02-16 1 views
0

그래서 내가 가지고있는 다음과 목록을 포함하는 목록라는 퍼즐 :를 확인하는 방법

puzzle = [[1, 3, 5, 5, 4], 
[3, 5, 1, 3, 4], 
[2, 3, 4, 5, 1], 
[1, 5, 3, 2, 2], 
[5, 4, 1, 3, 2]] 

내가 중복이있는 경우 퍼즐 및 테스트 내에서 각각의 목록을 확인하고 싶습니다 0이 아닌 숫자.이 경우 코드는 false를 반환합니다. 어떻게해야합니까?

+2

더 복잡한 경우 : 0을 제외해야합니다. 한 번 복제물을 분류하면 어렵지 않습니다. 바로 그 시점입니다. –

+0

@Daniel : 중복되지 않는 것은 처리되지 않습니다. –

답변

0

거의 동일한 접근법입니다. 단, 하위 목록에 0이없이 실행하면됩니다.

def has_dup(lst): 
    no_zeros = [x for x in lst if x != 0] 
    return len(set(no_zeros)) != len(no_zeros) 

is_valid = any(has_dup(x) for x in puzzle)