포포's 코딩&일상 기록

[python] 탐색에 사용되는 함수들 - enumerate() / not in / index() 본문

코테

[python] 탐색에 사용되는 함수들 - enumerate() / not in / index()

포포252 2023. 10. 1. 17:08

리스트 내의 원소와 index가 동시에 필요한 경우라면, enumerate() 함수를 이용

enumerate로 list를 감싸면, 원소로 (index, 원소)를 동시에 받으며 진행할 수 있습니다.

 

word = ['A', 'P', 'P', 'L', 'E']

# 해당 문자를 찾지 못했다면 -1
idx = -1

# 문자 탐색
for i, char in enumerate(word):
    if char == 'L':
        idx = i

# 문자가 존재하지 않는 경우
if idx == -1:
    print("not exist")
else:
    print(idx)

>> 3

특정 원소가 리스트 안에 있는지, 없는지에 대해서는 in, not in 이라는 키워드를 사용

 

word = ['A', 'P', 'P', 'L', 'E']

if 'L' in word:
    print('L is in list')
if 'L' not in word:
    print('L is not in list')

>> L is in list

 

 

또, 이미 존재하는 원소가 list의 어느 index에 있는지는 index() 함수를 이용해 확인 

word = ['A', 'P', 'P', 'L', 'E']

print(word.index('L'))

>> 3

단, 존재하지 않는 원소에 대해 index 함수를 이용하면 Value Error가 발생하니,

index 함수 이용시에는 꼭 먼저 해당 원소가 리스트에 포함되는지를 확인한 이후에 진행

word = ['A', 'P', 'P', 'L', 'E']

print(word.index('K'))

>> ValueError: 'K' is not in list

# 원소가 리스트에 들어있는지 확인 후 index 참조
if 'K' in word:
    print(word.index('K'))

in과 index 를 활용하면, 문자 'L'이 list에 있는지에 대한 여부어느 index에 있는지를 쉽게 구할 수 있음

만약 문자가 여러 개 존재한다면, 그 중 가장 앞에 있는 index를 반환

 

word = ['A', 'P', 'P', 'L', 'E']

# 해당 문자가 리스트에 없는 경우
if 'L' not in word:
    print("not exist")
# 해당 문자가 리스트에 있는 경우
else:
    print(word.index('L'))

>> 3