객체가 리스트나 튜플일때만 True, 스트링은 False처리하려면 어떻게 하죠

조회수 1738회

어떤 객체가 리스트/튜플이면 프로그램을 계속 실행하고, 스트링의 경우는 assert 하는 스크립트를 만드려고 합니다.

assert isinstance(lst, list)isinstance(lst, tuple) 같이 쓰는 것 말고 더 나은 방법이 있을까요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    먼저, isinstance()의 두 번째 인자는 튜플형을 받을 수 있기 때문에 assert isinstance(lst, list) or isinstance(lst, tuple)assert isinstance(lst, (list, tuple))로 줄일 수 있습니다.

    그리고 assert를 쓸 때, 제가 생각하기에는 assert not isinstance(lst, basestring) 로 쓰는 게 더 나은 방법인 것 같습니다 (파이썬3은 basestring을 쓸 수 없으니 string으로 바꿔주세요)

    질문하신 방법처럼 쓴다면 list/tuplesubclass는 아니지만, list/tuple처럼 작동하는 다른 타입에서도 assertionError가 발생하기 때문입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)