본문 바로가기
Python

파이썬 리스트 인덱싱과 슬라이싱

by Hunger 2023. 7. 27.
반응형

1. 함수와 메소드

함수와 메소드는 기본적으로 같은 의미입니다. 함수와 메소드를 구분하는 기준은 함수와 메소드가 선언되어 소속된 위치입니다. 함수의 경우는 객체나 클래스 외부에서 단독으로 선언되어 사용될 수 있는 반면, 메소드는 객체나 클래스 내부에서 선언된 것으로 객체나 클래스에 종속된 개념입니다.

2. 리스트 자료 구조

1) 리스트 인덱싱과 슬라이싱

리스트의 구조는 튜플과 유사합니다. 리스트 구조의 인덱싱과 슬라이싱도 문자열에서 사용하던 방법과 상당히 유사합니다.

country = ["Korea", "Japan", "France", "Spain", "USA", "Italia", "China", "Germany"]
#1
print(country[:5])
#2
print(country[5:])
#3
print(country[2:5])
#4
print(country[2:-3])

1번의 경우에는 처음부터 country 리스트의 5번째 요소까지 슬라이싱하여 출력합니다.
2번의 경우에는 country 리스트의 5번째 이후, 즉 6번재 요소부터 끝까지 출력합니다.
3번의 경우에는 country 리스트의 2번째 이후, 즉 3번째 요소부터 5번째까지 출력합니다.
4번의 경우에는 country 리스트의 2번째 이후, 즉 3번째 요소부터 뒤에서 3번째 요소 전까지 출력합니다. 다시 말해, print([2:-3])은 3번째 요소부터 5번째 요소까지 출력합니다.

2) 리스트 요소의 타입

리스트에 추가되는 각각의 데이터는 서로 데이터의 종류가 달라도 상관없습니다. 내용이 없는 빈 리스트를 선언할 때는 list() 함수를 사용할 수도 있고, 빈 대괄호를 이용할 수도 있습니다.

  1. []를 이용한 빈 리스트 선언 : country = []
  2. list() 함수를 이용한 빈 리스트 선언 : country = list()
    [ConFer]
    일반적으로 빈 리스트를 선언할 경우에는 편의성 때분에 빈 대괄호를 더 많이 사용합니다. 또한 변수 이름을 list로 쓰면 list() 함수와 식별자가 겹침으로 인해 실행 시 오류가 발생할 수 있습니다. 따라서 이름을 선언할 때는 내장 함수와 동일한 이름을 사용하지 않도록 주의해야 합니다.
#lis  = list()
lis = []

lis.append("programer")
lis.append("python")
lis.append(17)
lis.append(23)
lis.append(3.14)

print(type(lis))
print(lis)

#error 1
#print(lis.index(1000))

#error 2
#print(lis[1000])

1번 오류에서는 리스트에 없는 요소를 index() 함수로 검색하였으므로 ValueError이 발생합니다.
2번 오류에서는 리스트의 범위를 넘은 첨자를 사용하였으므로 IndexError이 발생합니다.

반응형

'Python' 카테고리의 다른 글

파이썬 튜플과 딕셔너리  (0) 2023.09.20
파이썬 리스트 연결과 정렬  (0) 2023.09.18
파이썬 리스트 자료 구조  (0) 2023.07.15
파이썬 자료 구조의 종류  (0) 2023.07.09
파이썬 중첩 if문과 while문  (0) 2023.07.06

댓글