0. 파이썬의 컨테이너
- 리스트(List) : 대괄호( '[ ]' )를 사용해서 항목을 함께 모으는 방법의 하나입니다. 배열과 비슷하게 사용되나, 배열은 아니고 객체로서 함수가 존재, 인덱스 값을 이용한 접근이 가능합니다. 어떤 것들을 묶음 또는 모음의 형태로 한꺼번에 저장합니다.
- 딕셔너리(Dictionary) : 두 개의 항목 키(key)와 값(value)을 서로 연관시키는 방법의 하나입니다. 중괄호( '{ }' ) 사용하며 딕셔너리는 키-값 쌍의 모음입니다. 정보를 가장 빠르게 찾을 수 있지만 메모리를 많이 차지합니다.
- 집합(Set) : 중괄호( '{ }' )를 이용해서 항목을 함께 모으는 방법의 하나입니다. 리스트와 비슷하지만 순서구분이 없고, 중복을 허락하지 않습니다. 이는 실제 수학에서 쓰이는 집합과 같은 성질인데, 실제로 집합에 관련된 것을 유용하게 처리하기 위해 나중에 만들어진 컨테이너입니다.
- 튜플(Tuple) : 불변(변경할 수 없는) 리스트입니다. 리스트에 사용하는 대괄호 대신 소괄호( '( )' ) 사용합니다. 불변이기 때문에 항목을 정렬하거나 추가, 삭제하는 등의 작업을 할 수 없습니다. 특정 항목을 가지고 튜플을 만들고 나면 그대로 유지됩니다.
*키(key)란?
정보를 찾는 데 사용할 항목을 의미합니다. 이때, 키 값은 반드시 고유해야 합니다.
*값(value)란?
찾고자 하는 항목을 의미합니다.
1. 딕셔너리 선언
딕셔너리이름 = { 키 : 값 , ... } 형태로 딕셔너리를 선언할 수 있습니다. 딕셔너리는 키와 값을 서로 연관시키는 방법의 하나라고 했는데요. 예를 들어
my_dict = { 'cat' : 'cute' , 'dog' : 'furry' }
라고 선언을 하면
key : 'cat' , 'dog'
value : 'cute' , 'furry'
가 될 것입니다.
이렇게 딕셔너리를 선언하면 다음과 같이 키를 통해서 그에 해당되는 값을 출력할 수 있습니다.
>>> my_dict [ 'cat' ]
'cute'
>>> my_dict [ 'dog' ]
'furry'
2. 딕셔너리 관련 함수
딕셔너리는 여러 딕셔너리 관련 함수를 사용해서 딕셔너리를 변경하거나 정보를 얻을 수 있습니다.
관련 함수 예시는 아래와 같습니다.
- dict_name[ key ] = value : 딕셔너리에 새로운 키-값 쌍을 추가합니다.
- dict_name.key( ) : 모든 딕셔너리 키의 리스트를 돌려줍니다.
- dict_name.value( ) : 모든 딕셔너리의 값의 리스트를 돌려줍니다.
- value in dict_name : in을 이용해 딕셔너리 내에 특정 키가 존재하는지 확인합니다.
- del dict_name[ value] : 해당 항목을 삭제합니다.
- dict_name.clear( ) : 모든 항목을 삭제합니다. 딕셔너리를 정리할 수 있습니다.


3. 딕셔너리 응용
딕셔너리는 여러 가지로 응용 가능한데요. 리스트와 마찬가지로 특히 반복문과 함께 사용될 때가 많습니다. 반복문을 이용하면 딕셔너리의 항목을 한 줄에 하나씩 출력 가능합니다. 다음은 for 반복문을 이용한 딕셔너리의 예시입니다.

-> for key in dict_name :
print ( key, dict_name[key] )
의 기본 포멧을 활용해서 딕셔너리의 key와 value를 여러 형태로 출력할 수 있습니다.
또한 list와 for문을 활용하여 딕셔너리를 만들 수도 있습니다.

마지막으로, 특별히 딕셔너리와 for 반복문에서 유용하게 쓰이는 메서드로 items 가 있습니다. (Python3.x에서 items함수로 작동합니다. 그 전 버전은 iteritems 로 입력해야 합니다.)
리스트에서 enumerate함수가 리스트 각 항목의 인덱스에 접근하는 것이었다면 items는 key에 해당하는 value에 접근하는 메서드 입니다. items 함수와 sprintf 방식을 이용하면 딕셔너리에 있는 항목을 보기쉽게 출력할 수 있습니다.
items 함수는 [ dict_name.items( ) ] 로 사용합니다.
for 문과 함께 사용될 때는 나타내야 할 변수가 두 개(키, 값) 이므로
for key, value in dict_name.items() 로 입력해야 합니다.

4. 리스트와 딕셔너리의 공통점과 차이점
공통점
1. 리스트와 딕셔너리 모두 어떤 자료형의 데이터(심지어 리스트와 딕셔너리까지)도 보관할 수 있으므로 숫자, 문자열, 객체, 심지어 다른 컬렉션으로 구성된 것들을 담을 수 있습니다.
2. 리스트와 딕셔너리 모두 컬렉션에서 항목을 찾는 수단을 제공합니다.
차이점
1. 리스트는 순서가 유지됩니다. 리스트에 항목을 특정 순서대로 넣으면 그 순서가 유지됩니다. 그리고 리스트는 정렬할 수 있습니다. 딕셔너리는 정해진 순서가 없습니다. 딕셔너리에 항목을 추가한 다음 내용을 출력하려면 항목을 추가한 순서와 다른 순서로 나타날 수도 있습니다.
2. 리스트 내의 항목은 인덱스를 통해 접근합니다. 딕셔너리 내의 항목은 키를 통해 접근합니다.
