학습 기록

Python 공부 기록 #2 - Python 기초 문법 다지기 (컬렉션 자료형)

  1. 목차

인트로

리스트(List)

튜플(Tuple)

딕셔너리(Dictionary)

세트(Set)

아웃트로

  1. 변수 하나로는 감당이 안 될 때

지난 포스팅에서 변수라는 ’상자’에 데이터를 담는 법을 공부했습니다. 그런데 업무를 하다 보면 데이터가 한두 개가 아니잖아요?

엑셀만 봐도 수천 개의 행이 있는데, 이걸 data1, data2… 이렇게 변수로 일일이 다 선언할 수는 없겠죠.

그래서 파이썬에는 여러 데이터를 한 번에 관리할 수 있는 ’컬렉션(Collection)’이라는 아주 유용한 도구가 있습니다.

쉽게 말해 엑셀의 ’열(Column)’이나 ‘행(Row)’ 데이터를 통째로 변수 하나에 담는다고 생각하면 이해가 빨랐습니다.

오늘은 파이썬에서 가장 많이 쓰이는 컬렉션 4총사(리스트, 튜플, 딕셔너리, 세트)를 정리해 봅니다.

  1. 리스트 (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만 잘라내기

  1. 튜플 (Tuple)

리스트랑 거의 똑같은데 소괄호 ()를 쓰고, 한 가지 결정적인 차이가 있습니다. 한 번 만들면 수정할 수 없습니다.

용도: 절대 바뀌면 안 되는 데이터(예: 위도/경도 좌표, 프로그램 설정값)를 보호할 때 씁니다. 리스트보다 메모리도 적게 먹고 속도도 빠르다고 하네요.

수정하려 하면 에러가 납니다!

my_tuple = (10, 20)

my_tuple[0] = 30 <– 여기서 에러 발생 (TypeError)

  1. 딕셔너리 (Dictionary)

이건 이름 그대로 ’사전’입니다. 그리고 우리 직장인들이 사랑하는 엑셀의 VLOOKUP과 원리가 똑같습니다!

키(Key)를 주면 값(Value)을 뱉어냅니다.

특징: 중괄호 {}를 쓰고, ‘이름표(Key): 내용(Value)’ 쌍으로 저장합니다.

용도: 회원 정보, 제품 상세 정보, JSON 데이터 처리 등

student = {

“이름”: “김철수”,

“팀”: “영업기획팀”,

“내선번호”: 1234

}

이름표로 찾기 (순서가 중요하지 않음)

print(student[“팀”]) # 출력: 영업기획팀

  1. 세트 (Set)

수학 시간에 배운 ’집합’입니다. 순서도 없고 인덱싱도 안 되지만, 중복을 자동으로 없애준다는 엄청난 장점이 있습니다.

용도: 엑셀에서 ‘데이터 > 중복된 항목 제거’ 기능과 똑같습니다.

중복된 1이 자동으로 사라집니다.

numbers = {1, 2, 3, 1, 1}

print(numbers) # 출력: {1, 2, 3}

교집합, 합집합도 가능해요

team_a = {“철수”, “영희”}

team_b = {“영희”, “민수”}

print(team_a & team_b) # 교집합: {‘영희’}

  1. 정리하며

오늘은 데이터를 효율적으로 담는 4가지 방법에 대해 정리해 봤습니다.

수정 가능한 목록이 필요하면? 👉 리스트

절대 변하면 안 되면? 👉 튜플

이름표 붙여서 관리하고 싶다면? 👉 딕셔너리

중복 제거가 필요하면? 👉 세트

이것만 확실히 구분해서 써도 데이터 관리가 훨씬 쉬워질 것 같습니다.

다음 기록에서는 이 데이터들을 가지고 더하기 빼기를 하고, 조건에 따라 분류하는 ’연산자와 제어문(if, for)’에 대해 정리해 보겠습니다.

혹시 내용 중에 제가 잘못 이해한 부분이 있다면 댓글로 알려주세요! (피드백 환영합니다 😊)