학습 기록
Python 공부 기록 #2 - Python 기초 문법 다지기 (컬렉션 자료형)
- 목차
인트로
리스트(List)
튜플(Tuple)
딕셔너리(Dictionary)
세트(Set)
아웃트로
- 변수 하나로는 감당이 안 될 때
지난 포스팅에서 변수라는 ’상자’에 데이터를 담는 법을 공부했습니다. 그런데 업무를 하다 보면 데이터가 한두 개가 아니잖아요?
엑셀만 봐도 수천 개의 행이 있는데, 이걸 data1, data2… 이렇게 변수로 일일이 다 선언할 수는 없겠죠.
그래서 파이썬에는 여러 데이터를 한 번에 관리할 수 있는 ’컬렉션(Collection)’이라는 아주 유용한 도구가 있습니다.
쉽게 말해 엑셀의 ’열(Column)’이나 ‘행(Row)’ 데이터를 통째로 변수 하나에 담는다고 생각하면 이해가 빨랐습니다.
오늘은 파이썬에서 가장 많이 쓰이는 컬렉션 4총사(리스트, 튜플, 딕셔너리, 세트)를 정리해 봅니다.
- 리스트 (List)
리스트는 제가 공부하면서 가장 많이 쓴 자료형입니다. 대괄호 [] 안에 아무거나 다 넣을 수 있습니다.
특징: 순서가 있고, 내용을 내 맘대로 바꿀 수 있습니다.
용도: 쇼핑몰 장바구니, 할 일 목록, 수집한 데이터 목록 등
📝 공부 노트: append() 함수로 데이터를 계속 추가할 수 있어서, 나중에 반복문이랑 섞어서 데이터를 수집할 때 필수로 쓰입니다!
빈 리스트 만들기
todo_list = []
숫자, 문자 섞어서 넣기도 가능 (엑셀보다 자유롭죠?)
mixed = [“보고서 작성”, 100, True]
리스트의 강력함: 인덱싱과 슬라이싱
numbers = [1, 2, 3, 4, 5]
print(numbers[0]) # 첫 번째 값: 1
print(numbers[-1]) # 마지막 값: 5 (이거 진짜 편합니다!)
print(numbers[2:4]) # 3, 4만 잘라내기
- 튜플 (Tuple)
리스트랑 거의 똑같은데 소괄호 ()를 쓰고, 한 가지 결정적인 차이가 있습니다. 한 번 만들면 수정할 수 없습니다.
용도: 절대 바뀌면 안 되는 데이터(예: 위도/경도 좌표, 프로그램 설정값)를 보호할 때 씁니다. 리스트보다 메모리도 적게 먹고 속도도 빠르다고 하네요.
수정하려 하면 에러가 납니다!
my_tuple = (10, 20)
my_tuple[0] = 30 <– 여기서 에러 발생 (TypeError)
- 딕셔너리 (Dictionary)
이건 이름 그대로 ’사전’입니다. 그리고 우리 직장인들이 사랑하는 엑셀의 VLOOKUP과 원리가 똑같습니다!
키(Key)를 주면 값(Value)을 뱉어냅니다.
특징: 중괄호 {}를 쓰고, ‘이름표(Key): 내용(Value)’ 쌍으로 저장합니다.
용도: 회원 정보, 제품 상세 정보, JSON 데이터 처리 등
student = {
“이름”: “김철수”,
“팀”: “영업기획팀”,
“내선번호”: 1234
}
이름표로 찾기 (순서가 중요하지 않음)
print(student[“팀”]) # 출력: 영업기획팀
- 세트 (Set)
수학 시간에 배운 ’집합’입니다. 순서도 없고 인덱싱도 안 되지만, 중복을 자동으로 없애준다는 엄청난 장점이 있습니다.
용도: 엑셀에서 ‘데이터 > 중복된 항목 제거’ 기능과 똑같습니다.
중복된 1이 자동으로 사라집니다.
numbers = {1, 2, 3, 1, 1}
print(numbers) # 출력: {1, 2, 3}
교집합, 합집합도 가능해요
team_a = {“철수”, “영희”}
team_b = {“영희”, “민수”}
print(team_a & team_b) # 교집합: {‘영희’}
- 정리하며
오늘은 데이터를 효율적으로 담는 4가지 방법에 대해 정리해 봤습니다.
수정 가능한 목록이 필요하면? 👉 리스트
절대 변하면 안 되면? 👉 튜플
이름표 붙여서 관리하고 싶다면? 👉 딕셔너리
중복 제거가 필요하면? 👉 세트
이것만 확실히 구분해서 써도 데이터 관리가 훨씬 쉬워질 것 같습니다.
다음 기록에서는 이 데이터들을 가지고 더하기 빼기를 하고, 조건에 따라 분류하는 ’연산자와 제어문(if, for)’에 대해 정리해 보겠습니다.
혹시 내용 중에 제가 잘못 이해한 부분이 있다면 댓글로 알려주세요! (피드백 환영합니다 😊)