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


발생하는 문제 및 실행환경

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

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

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

소스코드

if 'abc' in my_list:
  • 2016년 02월 04일에 작성됨

조회수 768


1 답변


좋아요
0
싫어요
채택취소하기

이럴 때는 리스트에 '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] 
  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close