본문 바로가기

Programming/Python

열거형

열거형들은 리스트 , 튜플 , 문자열 같은 것이다,    그러면 열거형이란 무엇이고 열거형에서는 무엇이 중요할까


열거형의 주요 두가지 기능은 멤버쉽 테스트 ( in , not in 연산) 와 열거형의 특정 항목을 얻어올 수 있는 인덱싱 연산 이다.


또한 리스트 , 튜플 , 문자열 의 세 가지 열거형은 슬라이스 연산 기능을 가지고 있는데 , 이것을 열거형의 일부분을 잘라낸 (Slice) 것을 반환하는 연산 , 즉 부분 집합을 반환해 주는 연산이다.


shoplist = ['apple','mango','carrot','banana']
name = 'swaroop'
# Indexing or 'Subscription' operation #
print("Item 0 is ",shoplist[0])
print("Item 1 is ",shoplist[1])
print("Item 2 is ",shoplist[2])
print("Item 3 is ",shoplist[3])
print("Item -1 is ",shoplist[-1])
print("Item -2 is ",shoplist[-2])
print("Character 0 is",name[0])

# Slicing on a list #
print("Item 1 to 3 is",shoplist[1:3])
print("Item 2 to end is",shoplist[2:])
print("Item 1 to -1 is",shoplist[1:-1])
print("Item start to end is ",shoplist[:])

# Slicing on a string #
print("Characters 1 to 3 is",name[1:3])
print("characters 2 to end is",name[2:])
print("Characters 1 to -1 is",name[1:-1])
print("Characters start to end is",name[:])

실행 결과 :

Item 0 is  apple

Item 1 is  mango

Item 2 is  carrot

Item 3 is  banana

Item -1 is  banana

Item -2 is  carrot

Character 0 is s

Item 1 to 3 is ['mango', 'carrot']

Item 2 to end is ['carrot', 'banana']

Item 1 to -1 is ['mango', 'carrot']

Item start to end is  ['apple', 'mango', 'carrot', 'banana']

Characters 1 to 3 is wa

characters 2 to end is aroop

Characters 1 to -1 is waroo

Characters start to end is swaroop 



먼저 , 열거형의 각 항목을 얻어오기 위해 어떻게 인덱스를 사용하는지 보자.
이를 다른말로 서브스크립션 연산 이라고도 한다.        위 예제에서 보인것과 같이 대괄호 내에 특정 숫자를 지정해주면,
파이썬은 열거형에서 해당 숫자의 위치에 있는 항목을 얻어온다.
이때 파이썬은 숫자를 0부터 센다는 점을 꼭 기억하자.
따라서 shoplist[0]과 shoplist[3]은 각각 열거형 shoplist의 첫번째와 네번째 항목을 읽어오는 연산이다.

인덱스에는 음수가 지정될수도 있다.    이 경우 , 열거형의 마지막부터 위치가 계산된다.
따라서 , shoplist[-1]은 열거형의 마지막 항목을 의미하며 shoplist[-2]는 열거형의 마지막 항목 바로 뒤의 항목을 의미한다.

슬라이스 연산 대괄호 안에 콜론( : ) 으로 구분한 숫자들을 입력해주는 것이다.

슬라이스 연산은 앞서 설명한 인덱신 연산과 굉장히 비슷하다.    이 경우 숫자는 반드시 지정해 줄 필요는 없지만 콜론은 반드시 들어가야한다.

슬라이스 연산에서 콜론 앞의 첫번째 숫자는 슬라이스를 시작할 위치를 의미하며 콜론 뒤의 두번째 숫자는 슬라이스를 멈출 위치를 지정한다.  

만일 첫번째 숫자가 지정되지 않았을 경우 , 파이썬은 열거형의 맨 처음부터 슬라이스를 시작한다.
두번쨰 숫자가 지정되지 않았을 경우 , 파이썬은 열거형의 맨 끝에서 슬라이스를 멈춘다.    

이때 슬라이스는 시작 위치부터 슬라이스를 시작하며 끝 위치의 직전까지 수행한다.
즉 ,  콜론 뒤의 숫자는 포함되지 않는다 .

따라서 ,  shoplist[1:3]은 위치 1에 해당하는 항목부터 시작하여 위치2에 해당하는 항목을 포함하지만 , 위치 3에 해당하는 항목은 포함하지 않는다.
따라서 두개의 항목의 슬라이스가 반환된다.    이와 비슷하게 , shoplist[ : ] 는 전체 열거형의 복사본이 반환된다.


슬라이스 숫자로도 음의 위치를 지정해 줄 수 있다.        음수는 열거형의 마지막부터 위치를 계산하는 것을 의미한다.
예를들어 , shoplist[ : -1 ] 은 마지막 항목을 제외한 모든 항목을 포함하고 있는 슬라이스를 반환한다.


슬라이스 숫자에 세번째 인수를 지정해 줄 수 있는데 , 이것은 슬라이스 스텝에 해당한다. ( 기본값은 1 )



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

문자열 보충설명  (0) 2017.11.11
집합 그리고 참조  (0) 2017.11.11
사전  (0) 2017.11.11
튜플  (0) 2017.11.11
파이썬의 자료 구조 , 리스트  (0) 2017.11.11