2023년 6월 업데이트
안녕하세요. SQLER의 코난 김대우입니다.
이번 강좌에서는, Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary를 진행토록 하겠습니다.
SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록
코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.
예를 들어, 11_collection.py를 생성하고 코드를 실행합니다.
TL;DR
Python의 list, array, dictionary 소개와 차이점을 소개하고, collection과 관련된 여러 코드를 예제를 통해 살펴봅니다. 각 collection의 장단점과 적용해야 할 데이터, 차이점에 대해서도 살펴보고 앞으로 사용될 강좌와 연계되는 부분도 설명합니다.
Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary
Python을 개발하면서 여러 컬렉션을 사용하게 됩니다. 저도 프로젝트에서 list나 dictionary는 거의 매번 사용했지만, 이게 collection이라는 범주로 묶인다는 것을 강좌를 준비하면서 처음 알았네요. 강좌에서 Tuple이나 Set은 커버하지 않는데, 저도 Tuple은 수년간 Python을 하면서 딱 한번(AzureML 데이터셋처리에서 입력 요구) 사용했을 정도로 거의 쓰이지 않았습니다.
하지만 List와 Dictionary는 거의 표준 데이터형만큼 자주 쓰이니 꼭 잘 공부해 두시길 권장해 드립니다.
컬렉션(Collections)
컬렉션은 항목들(items)의 그룹입니다. Python은 여러 유형의 컬렉션을 지원합니다. 가장 일반적인 세 가지는 dictionary, list 및 array입니다.
리스트(Lists) - 이하 List
List는 항목들(items)의 묶음입니다. List는 필요에 따라 확장 또는 축소할 수 있으며, 모든 데이터 유형을 포함할 수 있습니다. List는 정보의 단일 컬럼 컬렉션을 저장하는 데 일반적으로 사용되지만, Nested list(중첩 리스트)로 사용될 수도 있습니다.
names = ['Christopher', 'Susan'] # 리스트를 생성하면서 item을 추가 scores = [] # 빈 리스트 생성 scores.append(98) # 리스트에 첫 번째 값 추가 scores.append(99) # 리스트에 두 번째 값 추가 print(names) print(scores) print(scores[1]) # collection들은 index 번호 0부터 시작
배열(Arrays) - 이하 Array
Array는 list와 유사하지만 int 또는 float와 같은 하나의 기본 데이터형을 저장하도록 설계된 컬렉션입니다. 실제 대부분의 프로젝트에서 array가 사용될 경우는 SQLER 머신러닝 강좌에서 배우실 NumPy array를 쓰거나, pandas DataFrame을 더 자주 사용하게 될 겁니다.
from array import array # array를 사용하기 위해 import scores = array('d') scores.append(97) scores.append(98) print(scores) print(scores[1])
Array와 List의 차이
이 두 항목은 비슷해 보이지만, 차이가 있습니다. list는 모든 타입의 item 값을 저장 가능하지만, array는 기본 타입의 item만 처리할 수 있습니다.
일반적인 list 작업과 함수
기본적으로 제공되는 함수를 통해, 다양한 작업을 collection들에 대해 수행 가능합니다. 특히 list나 dict의 기본 함수는 잘 알아 두시면 이후에 유용하실 겁니다.
names = ['Susan', 'Christopher'] print(len(names)) # 항목들의 개수를 출력 names.insert(0, 'Bill') # 인덱스의 앞에 추가 print(names) names.sort() print(names)
list에서 범위 데이터 추출
list에서 특정 범위의 데이터를 가져올 수 있습니다.
names = ['Susan', 'Christopher', 'Bill'] presenters = names[0:2] # 0번부터 2번까지 항목들을 가져와 저장 # 범위 인덱스 번호 print(names) print(presenters)
딕셔너리(Dictionaries) - 이하 Dictionary
Dictionary는 여러 항목(item)의 key/value pair로 구성된 컬렉션입니다. Index나 value로만 접근 가능한 list와 달리, dictionary는 key를 사용하여 각 item을 식별합니다.
person = {'first': 'Christopher'} person['last'] = 'Harrison' print(person) print(person['first'])
Dictionary와 list의 차이
Dictionary는 key/value를 가집니다. 저장되는 순서는, 항상 순서대로 처리되는 것을 보장하지 않습니다.
List는 index로 각 item이 저장되고 저장되는 순서의 정합성을 보장합니다.
파이썬 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.
책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터
참고자료
개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝