[A Byte of Python]
10장 자료구조
리스트 (list)
리스트란 “순서”대로 정리된 항목들을 담고 있는 자료 구조이다.
정의 방법은 []
를 사용해 정의하며, 각 항목들은 ,
로 구분한다.
튜플 (tuple)
튜플은 리스트와 비슷하지만, 리스트와 달리 “수정이 불가능”하다.
주로 문자열과 같은 정적 객체를 담을 때 사용된다.
정의 방법은 ()
를 사용해 정의하며, 각 항목들은 ,
로 구분된다.
사전 (dict)
사전은 Key와 Value가 한쌍을 이루는 구조로 Key를 통해 Value에 접근할 수 있다.
정의 방법은 dict = { key1 : value1 , key2 : value2 }
와 같은 key:value구조로 되어있으며 각각의 쌍은 ,
로 구분된다.
열거형
열거형은 리스트, 튜플. 문자열을 나타내는 것이고,
두가지 중요한 특징이 존재한다.
첫째로, 맴버십 테스트(in
과 not in
연산).
둘째로, 특정 항목을 가져올 수 있는 인덱싱 연산이다.
또한 열거형은 슬라이스 연산 기능이 존재하는데, 열거형의 일부분을 잘라낸것을 만환 하는 연산이다.
예제
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[:]
집합
집합은 정렬되지 않은 단순한 객체의 묶음을 의미한다.
다만 집합은 집합론에 “사용하는 연산”을 사용할 수 있다.
정의 방법은 {}
를 사용하며 ,
로 각 항을 구분한다.
참조
객체를 생성하고 변수에 할당해 줄 때, 객체가 변수에 할당 되는 것이 아닌 “참조“만 할 뿐이다.
예를 들어,
a = [ 1, 2, 3 ] b = a a.append(10)
위와 같은 코드가 있을 때,
a와 b의 값은 [ 1, 2, 3, 10 ]
으로 동일하다.
즉, a와 b는 같은 객체를 “참조” 하고 있다는 뜻이다.