조건문에서 in 리스트 질문 있습니다!

조회수 524회

TestA = [TestB, 'gold' ,'void']

TestB = ['테스트', 130]

TestA 안에 TestB가 있고, TestB 안에 ‘테스트’ 가 있거나 번호가 150 이상이 있다면

-> ‘테스트 B 확인’

TestA 안에 TestB가 있고, TestB 안에 ‘테스트’ 가 없거나 번호가 150 미만이 있다면

-> ‘테스트 C 확인’

TestA안에 TestB 가 없다면

-> ‘다시 확인’

이러한 문제에서 제가 풀어본 식에서 제가


if TestB  in  TestA :

  check = 0

  if '테스트' in TestB :

    print('테스트 B 확인')
    check += 1
    elif TestB[0] >= 100 in TestB :
        if check == 0 :
          print('테스트 B 확인')

이런식으로 풀고 있는데요 문제에 답변과 제가 풀고 있는 방식이 맞는건지 이해를 제대로 한건지 잘 모르겠습니다. 거기에 elif TestB[0] >= 100 in TestB 이 부분이 맞는건지 잘 모르곘네요

  • 'TestA 안에 TestB가 있고' 라는 말이 애매하네요. TestB 리스트에 속한 요소를 말하는건가요, 리스트 자체를 말하는건가요? 초보자 2021.5.8 15:09
  • 우선 댓글 감사드립니다. 질문의 지문은 TestA 리스트 안에 TestB가 있고 그리고 TestB 리스트 안에 '테스트' 라는 값과 150 이상의 번호가 있는지 물어보는 문제 인것 같습니다. clown 2021.5.8 16:32
  • check는 어디서 나온 건가요? 초보자 2021.5.8 18:09
  • 아 check는 제가 만든 변수 입니다. TestB 리스트 안에 '테스트' 있거나 150 이상 있는지 if 조건문으로 함꺼번에 or 연산자로 하는 방법이 몰라서 check 변수로 TestB 리스트 안에 '테스트'가 있으면 print('테스트 B 확인') 출력해 주고 check 변수에 1로 해서 밑에 elif 에서 150 이상 번호가 있으면 또 print('테스트 B 확인') 출력 되는걸 방지 하려고 check로 구분 지어놓은 겁니다. ( 참고로 밑에 >= 100 라고 적어놓은건 테스트 하려고 작은 수 입력한겁니다.) clown 2021.5.8 18:31
  • 답변내용 수정했으니 재확인 바랍니다. 초보자 2021.5.9 13:40

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    다른 방식도 있겠지만 150 이상인 조건을 따로 하려면 이렇게 해야될 것 같습니다.

    TestB = ['테스트', 130]
    TestA = [TestB, 'gold' ,'void']
    
    if TestB in TestA:
        c = [i for i in TestB if str(type(i)) == "<class 'int'>"]
        print(c)
        if '테스트' in TestB or max(c) >= 150:
            print('테스트 B 확인')
        if '테스트' not in TestB or min(c) < 150:
            print('테스트 C 확인')
    else:
        print('다시 확인')
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)