[코드트리 조별과제] #04. 특정 위치의 문자 enumerate, 특정 원소의 개수 count

1. 특정 위치의 문자

문자 'L'가 list 안에 있는지, 있다면 몇 번째 index에 있는지 찾기

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

1. 반복문 사용

  • 몇 번째 index에 있는지를 저장해줄 idx라는 변수를 사용
  • 이때, index를 구해야 하기 때문에 for loop에서 i를 이용해야 함
word = ['A', 'P', 'P', 'L', 'E']

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

# 문자 탐색
for i in range(len(word)):
    if word[i] == 'L':
        idx = i

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

>> 3
 

 

2. enumerate() 함수 이용

  • 리스트 내의 원소와 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
 

 

3. in, not in

  • 특정 원소가 리스트 안에 있는지, 없는지에 대해서는 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

 

 

4. index() 함수 이용

  • 이미 존재하는 원소가 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

 

2. 특정 원소의 개수

문자 'P'가 list 안에 몇 번 들어있는지 찾기

 

1. 반복문 사용

  • 몇 번 들어있는지를 저장해줄 cnt라는 변수를 사용
word = ['A', 'P', 'P', 'L', 'E']

cnt = 0
for char in word:
    if char == 'P':
        cnt += 1

print(cnt)

>> 2

 

2. count() 함수 사용

  • 리스트에 내장되어 있는 count()라는 함수 사용
word = ['A', 'P', 'P', 'L', 'E']

cnt = word.count('P')
print(cnt)

>> 2