코테
[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