문자열을 저장하는 리스트가 특정 문자열을 포함하는지 알아내려고 합니다

조회수 72215회

발생하는 문제 및 실행환경

my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

같은 리스트에서 리스트 안에 'abc'가 있는지 알아내려면 어떻게 해야되나요?

제가 아는 건 'abc-123'이나 'abc-456'같이 리스트 아이템이 정확히 'abc'랑 일치해야되서 안됩니다 ㅜㅜ

소스코드

if 'abc' in my_list:

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    이럴 때는 리스트에 'abc'가 있는걸 확인하는 게 아니라(if 'abc' in my_list), 리스트 아이템 하나하나에 'abc'가 있는지 확인해 줘야 합니다.

    그냥 있는지 없는지 확인만 할 거라면

    some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
    
    #길게 쓰면
    for s in some_list:
        if "abc" in s:
            print("있다")
            break; #하나만 찾으면 뒤는 안 찾음
    
    
    #짧게 쓰면
    if any("abc" in s for s in some_list):
        print("있다")
    

    "abc"를 포함하는 아이템을 찾아내려면

    some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
    
    #길게 쓰면
    resultlist = []
    for s in some_list:
        if "abc" in s:
            resultlist.append(s)
    
    #짧게 쓰면
    matching = [s for s in some_list if "abc" in s] 
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)