반응형
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 키워드는 단순히 데이터 안에 값이 있는지 확인하는 기능처럼 보이지만, 실제로는 문자열 검색, 리스트 탐색, 필터링, 데이터 검증 등 다양한 곳에서 핵심 역할을 한다.
특히 조건문과 결합하면 프로그램의 흐름을 자연스럽게 제어할 수 있고, 복잡한 탐색 알고리즘 없이도 간단하게 포함 여부를 확인할 수 있어 매우 유용하다.
또한 문자열 검색에서도 활용 가능하다는 점이 직관적이어서 초보자도 금방 체감하며 사용할 수 있는 파이썬의 큰 장점 중 하나라고 느꼈다.
🚀 적용점
- 회원 목록, 금지어 목록 등 리스트/튜플 데이터에서 존재 여부 검사
- 비속어 필터링 같은 문장 내 특정 단어 감지 기능 구현
- 문자열에 키워드 포함 여부로 검색 기능 구현
- 랜덤 게임처럼 포함 여부 기반 조건 분기 로직 구성
- 웹 크롤링 시 특정 문자열 포함 여부로 데이터 필터링
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -12 (0) | 2025.12.09 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -11 (0) | 2025.12.08 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -09 (0) | 2025.12.06 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -08 (0) | 2025.12.05 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -07 (0) | 2025.12.03 |