Python 에서 리스트가 특정 요소를 포함하는지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 리스트에 특정 요소가 포함되어 있는지 확인하는 방법을 배우게 됩니다. 이는 요소의 존재 여부에 따라 결정을 내리는 데 기본적인 연산입니다. 우리는 주로 in 연산자를 사용하여 리스트 멤버십을 결정할 것입니다.

먼저 과일 리스트를 생성한 다음 in 연산자를 사용하여 "banana" 및 "grape"와 같은 특정 과일이 있는지 확인할 것입니다. 이 랩에서는 in 연산자가 항목을 찾으면 True를 반환하고 그렇지 않으면 False를 반환하는 방법을 보여줍니다. 또한, 항목이 리스트에 없는지 확인하기 위해 not in 연산자를 사용하는 방법을 살펴볼 것입니다.

리스트 멤버십 이해

이 단계에서는 Python 에서 항목이 리스트 내에 존재하는지 확인하는 방법을 배우게 됩니다. 이는 리스트 작업 시 기본적인 연산이며, 특정 요소의 존재 여부에 따라 결정을 내리는 데 자주 사용됩니다. 우리는 이를 위해 in 연산자를 사용할 것입니다.

먼저, 과일 리스트를 생성해 보겠습니다.

fruits = ["apple", "banana", "cherry"]

이 코드 줄은 "apple", "banana", "cherry"의 세 문자열 요소를 포함하는 fruits라는 이름의 리스트를 생성합니다.

이제 in 연산자를 사용하여 "banana"가 fruits 리스트에 있는지 확인해 보겠습니다. VS Code 편집기를 사용하여 ~/project 디렉토리에 membership.py라는 파일을 생성합니다. 다음 코드를 membership.py에 추가합니다.

fruits = ["apple", "banana", "cherry"]
print("banana" in fruits)

파일을 저장합니다. 이제 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.

python membership.py

출력 결과는 다음과 같습니다.

True

이는 "banana"가 실제로 fruits 리스트에 있음을 나타냅니다.

이제 "grape"가 fruits 리스트에 있는지 확인해 보겠습니다. membership.py 파일을 다음과 같이 수정합니다.

fruits = ["apple", "banana", "cherry"]
print("grape" in fruits)

파일을 저장하고 다시 실행합니다.

python membership.py

출력 결과는 다음과 같습니다.

False

이는 "grape"가 fruits 리스트에 없음을 나타냅니다.

in 연산자는 항목이 리스트에 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 이는 Python 에서 리스트 멤버십을 결정하는 간단하지만 강력한 방법입니다.

또한 not in 연산자를 사용하여 항목이 리스트에 없는지 확인할 수도 있습니다. 예를 들어:

fruits = ["apple", "banana", "cherry"]
print("grape" not in fruits)

파일을 저장하고 실행합니다.

python membership.py

출력 결과는 다음과 같습니다.

True

이는 "grape"가 fruits 리스트에 없기 때문에, 표현식 "grape" not in fruitsTrue로 평가되기 때문입니다.

in 연산자 사용

이전 단계에서는 in 연산자를 사용하여 리스트 멤버십의 기본 사항을 배웠습니다. 이 단계에서는 다양한 데이터 유형과 시나리오에서 in 연산자의 더 실용적인 응용 프로그램을 살펴보겠습니다.

in 연산자는 리스트에만 국한되지 않습니다. 문자열 및 튜플과 같은 다른 반복 가능한 데이터 유형과 함께 사용할 수도 있습니다.

문자열과 함께 in 사용하기:

더 큰 문자열 내에 부분 문자열이 존재하는지 확인할 수 있습니다. VS Code 편집기를 사용하여 ~/project 디렉토리에 string_membership.py라는 파일을 생성합니다. 다음 코드를 string_membership.py에 추가합니다.

text = "Hello, world!"
print("world" in text)

파일을 저장합니다. 이제 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.

python string_membership.py

출력 결과는 다음과 같습니다.

True

이는 부분 문자열 "world"가 문자열 "Hello, world!"에 있음을 나타냅니다.

존재하지 않는 부분 문자열을 확인해 보겠습니다.

text = "Hello, world!"
print("python" in text)

파일을 저장하고 다시 실행합니다.

python string_membership.py

출력 결과는 다음과 같습니다.

False

이는 부분 문자열 "python"이 문자열 "Hello, world!"에 없음을 나타냅니다.

튜플과 함께 in 사용하기:

튜플은 리스트와 유사하지만 변경 불가능합니다 (생성 후 변경할 수 없음). 또한 in 연산자를 튜플과 함께 사용할 수 있습니다. VS Code 편집기를 사용하여 ~/project 디렉토리에 tuple_membership.py라는 파일을 생성합니다. 다음 코드를 tuple_membership.py에 추가합니다.

numbers = (1, 2, 3, 4, 5)
print(3 in numbers)

파일을 저장합니다. 이제 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.

python tuple_membership.py

출력 결과는 다음과 같습니다.

True

이는 숫자 3 이 튜플 numbers에 있음을 나타냅니다.

존재하지 않는 숫자를 확인해 보겠습니다.

numbers = (1, 2, 3, 4, 5)
print(6 in numbers)

파일을 저장하고 다시 실행합니다.

python tuple_membership.py

출력 결과는 다음과 같습니다.

False

이는 숫자 6 이 튜플 numbers에 없음을 나타냅니다.

이러한 예제는 Python 에서 in 연산자의 다재다능함을 보여줍니다. 다양한 반복 가능한 데이터 유형의 멤버십을 확인하는 데 사용할 수 있으므로 간결하고 읽기 쉬운 코드를 작성하는 데 유용한 도구입니다.

index() 로 인덱스 찾기

이 단계에서는 index() 메서드를 사용하여 리스트 내에서 항목의 인덱스를 찾는 방법을 배우게 됩니다. 이 메서드는 리스트에서 특정 요소의 위치를 알아야 할 때 유용합니다.

이전 단계에서 사용했던 동일한 fruits 리스트로 시작해 보겠습니다. VS Code 편집기를 사용하여 ~/project 디렉토리에 find_index.py라는 파일을 생성합니다. 다음 코드를 find_index.py에 추가합니다.

fruits = ["apple", "banana", "cherry"]
index_of_banana = fruits.index("banana")
print(index_of_banana)

파일을 저장합니다. 이제 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.

python find_index.py

출력 결과는 다음과 같습니다.

1

이는 "banana"가 fruits 리스트의 인덱스 1 에 위치해 있음을 나타냅니다. Python 리스트는 0 부터 시작하는 인덱스를 사용한다는 점을 기억하세요. 즉, 첫 번째 요소는 인덱스 0, 두 번째 요소는 인덱스 1 등에 위치합니다.

이제 리스트에 존재하지 않는 항목의 인덱스를 찾아보겠습니다.

fruits = ["apple", "banana", "cherry"]
index_of_grape = fruits.index("grape")
print(index_of_grape)

파일을 저장하고 다시 실행합니다.

python find_index.py

출력 결과는 다음과 같습니다.

Traceback (most recent call last):
  File "/home/labex/project/find_index.py", line 2, in <module>
    index_of_grape = fruits.index("grape")
ValueError: 'grape' is not in list

"grape"가 fruits 리스트에 없기 때문에 ValueError가 발생합니다. index() 메서드를 사용할 때 이 잠재적인 오류를 처리하는 것이 중요합니다. ValueError를 방지하기 위해 index()를 호출하기 전에 in 연산자를 사용하여 항목이 리스트에 존재하는지 확인할 수 있습니다.

ValueError를 처리하는 방법의 예는 다음과 같습니다.

fruits = ["apple", "banana", "cherry"]
item_to_find = "grape"

if item_to_find in fruits:
    index_of_item = fruits.index(item_to_find)
    print(f"{item_to_find} is at index {index_of_item}")
else:
    print(f"{item_to_find} is not in the list")

파일을 저장하고 실행합니다.

python find_index.py

출력 결과는 다음과 같습니다.

grape is not in the list

이 코드는 먼저 in 연산자를 사용하여 item_to_findfruits 리스트에 존재하는지 확인합니다. 존재하면 인덱스를 찾아서 출력합니다. 그렇지 않으면 항목이 리스트에 없음을 나타내는 메시지를 출력합니다. 이 접근 방식은 ValueError를 방지하고 코드를 더욱 강력하게 만듭니다.

요약

이 랩에서는 Python 리스트 내에서 특정 요소의 존재 여부를 확인하는 방법을 배웠습니다. 주요 방법은 in 연산자를 사용하는 것으로, 요소가 리스트에 존재하면 True를 반환하고 그렇지 않으면 False를 반환합니다. 또한 요소가 리스트에 없으면 True를 반환하는 반대 기능을 제공하는 not in 연산자도 살펴보았습니다.

이 랩에서는 과일 리스트를 사용하여 이러한 개념을 시연했으며, innot in 연산자를 모두 사용하여 리스트 내에서 다양한 문자열의 멤버십을 확인하는 방법을 보여주었습니다. 제공된 예제는 Python 에서 다양한 리스트 멤버십 검사에 쉽게 적용할 수 있는 명확하고 간결한 코드 조각을 제공했습니다.