[Python] any, all 빌트인 함수 Develop Tip

현재 사용하고 있는 언어마다 익숙하지 않으면
잘 사용하지 않은 키워드나 함수 등이 있기 마련인데
파이썬에서 all(), any() 함수가 그랬던 것 같습니다.

뭐 지금부터라도 필요한 곳에 잘 사용하면 되겠지요...

다음의 간단한 코드를 보겠습니다.

>>> any([False, False, False])
False
>>> any([False, True, False])
True

여기에서 확인해 보면, any 함수는 Iteration 이 가능한 객체를 받아
(위의 예에서는 list) 그 항목을 돌면서 어느 하나라도 True 이면
결과로 True를 리턴 한다는 것을 알 수 있었습니다.

즉 여러 개 중에 어느 하나라도 참이면 참... 이라는 의미이군요.

반면 all 은

>>> all([False, True, False])
False
>>> all([True, True, True])
True

any 와는 반대로 Iteration 을 해서 그 내용은 모두 참이어야 참이라는 것을 나타냅니다.

즉, 여러 개 중에 모두 참이면 참... 이라는 의미이지요.


어느 분께는 도움이 되셨기를...



덧글

  • 요원009 2015/11/10 13:06 # 답글

    파이썬은 정말 볼때마다 놀라워요.

    왜저렇게까지 간단할까... 싶어서요. ㅎㅎㅎ
  • 지훈현서아빠 2015/11/10 14:18 #

    저도 그렇답니다~ ㅎㅎ
  • 나그네 2015/12/16 07:39 # 삭제 답글

    all(range(3)) 하면 왜 False가 뜰까요?
    그리고 all([]) 이렇게 하면 True가 됩니다...(여기에서 멘붕)
    전 False를 원했는데 True가 되서 TestCode에서 삽질을 했네요..
  • 지훈현서아빠 2015/12/16 08:54 #

    all(range(3)) 은 all([0,1,2]) 와 동일합니다.
    해당 내용 중에 False인 0 이 들어 그렇습니다.
    all([1,2,3]) 은 True 나오네요.
    또한,
    all([]) 은 그 엘리먼트가 모두 True 이라는 것을 의미하는데
    비어있는 것에 대해서 True를 Return 하는 것은 저도 처음 알았네요.
    bool([]) 은 물론 False 입니다만...

    덕분에 좋은 결과 알아둡니다.
    감사합니다.
댓글 입력 영역

구글애드텍스트