파이썬 리스트 index - paisseon liseuteu index

'변수. find(찾을 문자)' / '변수. index(찾을 문자)'형태로 두 함수 모두 괄호( ) 안에 문자를 넣어 사용한다. 그러면 변수에 위치한 문자열 중 괄호( ) 안에 넣은 특정 문자가 처음 위치한 자리의 값을 찾을 수 있다. 

문자열의 위치는 숫자로 출력되고 0부터 시작한다.

사용 예시

# 문자 'x'가 첫번째 위치한 자리를 출력
>>> 'oxoxoxoxox'.find('x'))  # find 함수
1 
>>> 'oxoxoxoxox'.index('x'))  # index 함수
1

# 문자 'o'가 첫번째 위치한 자리를 출력
>>> a = 'hello'
>>> a.find('o'))  # find 함수
4
>>> a.index('o'))  # index 함수
4

1-2) 시작점, 종료점을 지정

(sub [, start [, end]]) 형태로 문자를 찾는 시작점과 종료점을 지정할 수 있다.

괄호 안에 (찾을 문자열, 시작점, 종료점) 순서로 입력할 수 있다. 종료지점 없이 시작점만 지정할 때는 (찾은 문자열, 시작점) 형태로 사용한다. 즉, 문자열 뒤에 숫자가 1개이면 시작점, 숫자가 2개이면 시작점과 종료점을 나타낸다. 숫자가 1개인 경우 시작점을 나타내기 때문에 종료점만 지정하는 방법으로는 사용할 수 없다. 

사용 예시

# 문자열중 2번째 위치부터 처음 'x'가 위치한 자리
>>> 'oxoxoxoxox'.index('x', 2)
3

# a변수에서 1번째~3번째 사이에 문자 'o'가 위치한 자리
>>> a = 'hello'
>>> a.find('o', 1, 3)
-1	
# find함수는 찾는 값이 없을 때 -1을 출력한다.

위 사용 예시에서 찾는 값이 없는 경우 find 함수는 -1을 출력했다. 찾는 값이 없는 경우의 출력 결과가 다른 것이 find와 index 함수의 차이점이다. 두 함수의 차이점은 아래에서 계속 설명한다.

2. find( ), index( ) 차이점

2-1) find( )

찾는 문자가 없는 경우에 -1을 출력한다.

문자열을 찾을 수 있는 변수는 문자열만 사용이 가능하다.  리스트, 튜플, 딕셔너리 자료형에서는 find 함수를 사용할 수 없다. 만일 사용하게 되면 AttributeError 에러가 발생한다.

 

index 함수는 배열에서 값의 위치를 찾아주는 함수리며, 중복된 값이 있으면 가장 최소의 위치를 리턴

 


 

a 리스트에서 10의 위치 찾기. (최소값인 1이 출력)

 

a = [11,10,12,13,20,31,11,10,10,11]
print(a.index(10))
-----------------------------------
1

 

 

 

a 리스트에서 2번째 ~ 9번째 위치에서 10의 위치 찾기. (최소값인 7이 출력)

 

a = [11,10,12,13,20,31,11,10,10,11]
print(a.index(10,2,9))    # index(value, start, end)
----------------------------------------------------
7

 

 

 

a 문자열에 '1' 이라는 문자 위치 찾기

 

a = '123451'
print(a.index('1'))
---------------------
0

 

 

 

a 문자열에 1번째 ~ 6번째 위치에서 '1' 이라는 문자 위치 찾기

 

a = '123451'
print(a.index('1',1,6))
------------------------
5

 

공유하기

게시글 관리

구독하기System Admin

저작자표시 비영리 변경금지

  • 카카오스토리
  • 트위터
  • 페이스북

'Python > Python Programming' 카테고리의 다른 글

[Python] Windows OS Disk Usage Check. (윈도우 운영체제 디스크 사용량 체크)  (0)2019.10.18[Python] Extract directory and filename. (디렉토리와 파일명 추출하기)  (0)2019.10.18[Python] Directory make and remove with subdirectories. (하위 디렉토리 포함 생성과 삭제)  (0)2019.10.18[Python] Directory make and remove. (디렉토리 생성과 삭제)  (0)2019.10.18[Python] isalnum 문자열에 숫자 또는 알파벳만 있는지 확인하는 메소드  (0)2019.10.15[Python] isdigit - Decide if only numbers exist. (문자열에 숫자만 있는지 확인하는 메소드)  (0)2019.10.15[Python] 2개의 리스트의 요소들을 합쳐서 딕셔너리 타입으로 변환  (0)2019.10.14[Python] To obtain the average value of a list number element. (리스트 숫자 요소의 평균값 구하기)  (0)2019.10.14

INDEX 함수, index 함수 활용, PYTHON, 리스트 값 위치 찾기, 배열 값 찾기, 인덱스 함수, 파이썬

, 댓글 0개가 달렸습니다

댓글을 달아 주세요

비밀글

다시 말해 카운트는 기본적으로

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
9에서 시작되고 전달된 종료값에서 1을 뺀 값까지 매번
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
2씩 증가합니다.
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
4 함수에 인자로 전달된 종료값은 카운트에 포함되지 않는다는 점을 꼭 명심하세요.

예시를 확인해봅시다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

for name in range(5):
    print(names[name])
    
#출력된 값 

#Kelly
#Nelly
#Jimmy
#Lenny
#Traceback (most recent call last):
#  File "/Users/boyeonihn/python_articles/demo.py", line 7, in <module>
#   print(names[name])
#IndexError: list index out of range

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
7 리스트에는 네 가지 값이 있습니다.

이 리스트를 순회하고 각 항목의 값을 출력하고 싶다는 가정해보겠습니다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
8를 사용할 때 Python 인터프리터에게
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
6에 위치한 값을 출력하라는 지시를 전하는 의미입니다.

그러나

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[0] # Kelly
names[1] # Nelly
names[2] # Jimmy
names[3] # Lenny
6 위치에는 항목이 없습니다.

위치 번호를 출력한 후 해당 위치의 값을 출력해보면 이 사실을 확인할 수 있습니다.

#0
#Kelly
#1
#Nelly
#2
#Jimmy
#3
#Lenny
#4
#Traceback (most recent call last):
#  File "/Users/dionysialemonaki/python_articles/demo.py", line 8, in <module>
#    print(names[name])
#IndexError: list index out of range

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
8는
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
6의 위치를 나타냅니다.
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
9 위치에는 "Kelly",
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
2 위치에는 "Nelly",
print(names[4])

#출력된 값 

#Traceback (most recent call last):
#  File "/Users/boyeonihn/python_articles/demo.py", line 3, in <module>
#    print(names[4])
#IndexError: list index out of range
2 위치에는 "Jimmy", 그리고
print(names[4])

#출력된 값 

#Traceback (most recent call last):
#  File "/Users/boyeonihn/python_articles/demo.py", line 3, in <module>
#    print(names[4])
#IndexError: list index out of range
3 위치에는 "Lenny"라는 값이 있다는 것을 확인할 수 있습니다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[0] # Kelly
names[1] # Nelly
names[2] # Jimmy
names[3] # Lenny
6 위치의 경우 출력할 값이 없으므로 인터프리터가 오류를 발생시킵니다.

이 오류를 해결하는 한 가지 방법은

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
4에 전달된 정수를 낮추는 것입니다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

for name in range(4):
    print(name)
    print(names[name])
    
#출력된 값

#0
#Kelly
#1
#Nelly
#2
#Jimmy
#3
#Lenny

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
3문을 사용할 때 이 오류를 해결하는 또 다른 방법은 리스트의 길이를
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
4 함수에 인수로 전달하는 것입니다. 이전 섹션에서 설명한 것처럼 내장 함수
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
8를 사용하면 됩니다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
0

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
8을
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny
4에 인수로 전달할 때 다음과 같은 실수를 조심하세요.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
1

이런 코드를 실행하면

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

print(names[-5])

#출력된 값 

#Traceback (most recent call last):
#  File "/Users/boyeonihn/python_articles/demo.py", line 3, in <module>
#    print(names[-5])
#IndexError: list index out of range
1 오류가 다시 발생합니다.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#name_length라는 변수를 만들어 리스트의 길이를 저장합니다
name_length = len(names)

#변수의 값을 콘솔에 출력합니다. 
print(name_length)

#출력된 값 
#4
2

마치며

이제

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

print(names[-5])

#출력된 값 

#Traceback (most recent call last):
#  File "/Users/boyeonihn/python_articles/demo.py", line 3, in <module>
#    print(names[-5])
#IndexError: list index out of range
1 오류가 발생하는 이유와 이를 방지할 수 있는 몇 가지 방법에 대해 이해가 잘 되셨나요?

Python에 대해 더 배워보고 싶다면 freeCodeCamp의 Python 수료증 과정을 확인해보세요. 수료증 강의를 통해 초보자여도 Python을 재미있고 유익하게 배우면서 5개의 프로젝트를 해보며 배운 것을 열심히 실습할 수 있을 거에요.

읽어주셔서 감사합니다. Happy coding!

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT


파이썬 리스트 index - paisseon liseuteu index
Author: Dionysia Lemonaki (English)

Learning something new everyday and writing about it

파이썬 리스트 index - paisseon liseuteu index
Translator: Boyeon Ihn

She/her | Software Engineer @ 100Devs | i read, i learn languages, i solve problems | 개발과 n개국어를 하는 사람 | ✝️🏳️‍🌈🐕


If you read this far, tweet to the author to show them you care. Tweet a thanks

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started