데이터

제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -10

Leah (리아) 2025. 12. 7. 11:30
반응형

Chapter 01. 자료구조

Chapter 04 — in과 not in 키워드

아이템 존재 여부 판단하기


주요 개념 요약

🔹 1. in / not in 키워드란?

  • 특정 값이 자료구조 안에 포함되어 있는지 확인하는 키워드
  • 리스트, 튜플, 문자열 등 반복 가능한 객체(iterable) 모두에서 사용 가능
  • 결과는 True 또는 False

🔹 2. 튜플에서 사용 예시

studentsTuple = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
→ 입력한 이름이 우리반 학생인지 판별하는 코드

예시 출력

  • 입력: 박찬호 → "우리반 학생입니다."
  • 입력: 강호동 → "우리반 학생이 아닙니다."

🔹 3. 문자열에서 사용 예시

문자열에서도 부분 문자열 포함 여부 확인 가능

예시 결과 (PDF p.3):

  • "Python" in 문자열 → True
  • "python" in 문자열 → False
  • "귀도" in 문자열 → True
  • "객체지향적" in 문자열 → True

대소문자 구분함에 주의!

🔹 4. 실습 예제 ① – 난수 맞추기

컴퓨터가 1~10 난수 5개 생성 → 사용자가 입력한 숫자가 포함돼 있는지 검사

예시:

  • 입력: 8 → 다음 기회에
  • 입력: 5 → “빙고!”

🔹 5. 실습 예제 ② – 비속어 감지

문장 속에 지정한 단어(in list)가 존재하는지 검사
→ 단순한 욕설 필터 기능


코드 예시

✔️ 1) 튜플에서 아이템 존재 여부 확인

studentsTuple = ('홍길동', '박찬호', '이용규', '박승철', '김지은')

searchName = input('학생 이름 입력: ')

if searchName in studentsTuple:
    print(f'{searchName} 학생은 우리반 학생입니다.')
else:
    print(f'{searchName} 학생은 우리반 학생이 아닙니다.')

✔️ 2) 문자열에서 부분 문자열 포함 여부 확인

pythonStr = """파이썬(Python)은 1991년... (중략) ... 객체지향적 대화형 언어이다."""

print("Python :", "Python" in pythonStr)
print("python :", "python" in pythonStr)

print("파이썬 :", "파이썬" in pythonStr)
print("파이선 :", "파이선" in pythonStr)

print("귀도 :", "귀도" in pythonStr)
print("객체지향적 :", "객체지향적" in pythonStr)

 


✔️ 3) 난수 포함 여부 게임

 
import random

randomNumbers = random.sample(range(1, 11), 5)
userNumber = int(input('숫자 입력: '))

if userNumber in randomNumbers:
    print('빙고!')
else:
    print('다음 기회에~')

print('randomNumbers:', randomNumbers)
print('userNumber:', userNumber)

✔️ 4) 비속어 감지 프로그램

 
bad_words = ['나쁜말1', '나쁜말2', '나쁜말3']
sentence = input("문장을 입력하세요: ")

detected = False

for word in bad_words:
    if word in sentence:
        detected = True
        break

if detected:
    print("비속어가 감지되었습니다.")
else:
    print("비속어 없음")

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

in과 not in 키워드는 단순히 데이터 안에 값이 있는지 확인하는 기능처럼 보이지만, 실제로는 문자열 검색, 리스트 탐색, 필터링, 데이터 검증 등 다양한 곳에서 핵심 역할을 한다.
특히 조건문과 결합하면 프로그램의 흐름을 자연스럽게 제어할 수 있고, 복잡한 탐색 알고리즘 없이도 간단하게 포함 여부를 확인할 수 있어 매우 유용하다.
또한 문자열 검색에서도 활용 가능하다는 점이 직관적이어서 초보자도 금방 체감하며 사용할 수 있는 파이썬의 큰 장점 중 하나라고 느꼈다.


🚀 적용점

 

  • 회원 목록, 금지어 목록 등 리스트/튜플 데이터에서 존재 여부 검사
  • 비속어 필터링 같은 문장 내 특정 단어 감지 기능 구현
  • 문자열에 키워드 포함 여부로 검색 기능 구현
  • 랜덤 게임처럼 포함 여부 기반 조건 분기 로직 구성
  • 웹 크롤링 시 특정 문자열 포함 여부로 데이터 필터링

 

반응형