Python 자료구조

DA_LEESUNHO·2025년 11월 10일

Learning Base

목록 보기
9/15

네 줄 요약 >
1) 리스트와 튜플은 시퀀스(순서가 있는) 자료형이며,
2) 튜플은 수정 불가
3) 딕셔너리는 키와 값의 쌍으로 이루어진 자료형
4) 자료형 별 메소드 확인하자 (특히 dictionary.pop)


환경 : VSC (Visual Studio Code)

Python 자료구조에 대해 학습해보자.
** 코드 실행은 .py 파일을 실행한다는 개념으로 터미널에서 실행

리스트 (List)

여러 값을 순서대로 저장할 수 있는 자료형 (Data Type)
대괄호 [ ] 를 사용
수정 & 삭제 가능 (Mutable)

list_a = ["apple", "banana", 56, "abc", "leesunho", "data", "Analyst"]
print(list_a)
print(list_a[0])
print(list_a[-1])
print(list_a[0:7:2])		# 0~6(7-1) 인덱스까지 두 칸 간격의 데이터 출력

리스트 자료형에 자주 사용하는 메소드를 학습하고 알아두자

메소드설명
append(a)맨 뒤에 추가
insert(i,a)지정 위치에 추가
remove(a)해당 요소 삭제
pop()마지막 요소 꺼내기
sort()오름차 순 정렬

✔️ 메소드(Method) ?

Object(객체) 와 연관되어 사용된다.
→ " . "으로 연결되어 있어야 한다

str, float, list 등 자료형은 모두 객체
ex> .split() , .append 등

✔️ 메소드 vs 함수

함수는 독립적으로 정의 → 이름만으로 호출이 가능함
그러나 메소드는 이름만으로 호출되지 않음.
정의된 클래스와 연관되어 호출이 가능하다

즉 메소드는 클래스 내에서 정의되므로, 해당 클래스에 종속된다.

✔️ pop()

해당 메소드의 실행결과를 보자.

Python 실행 시 동작 과정은, 위에서부터 아래로 진행된다.
1) 첫 번째 print 문 : list_a 의 리스트가 출력
2) 두 번째 print(pop) 문 : 리스트의 마지막 자료 출력
3) 마지막 print 문 : 마지막 자료가 빠진 리스트 출력

다음 실행 결과를 보자

결론적으로
pop() 메소드는 단순히 마지막 데이터를 추출하여 리스트에서 제거하는게 아닌,
추출하여 재사용을 위한 용도로도 사용할 수 있다.


튜플 (Tuple)

변경이 불가능한 리스트
소괄호 ( ) 를 사용
수정 & 삭제 불가능 (Immutable)
→ 데이터 보호 목적

a = ("apple", "banana", 56, "abc", "leesunho", "data", "Analyst")
print(type(a))
print(a)

List vs Tuple

  • 변경 가능 vs 불가능
  • 실행 속도 : 약간 느림 vs 빠름
  • 활용 예시 : 학생 점수 목록 vs 좌표, 고정 데이터

딕셔너리 (Dictionary)

키와 값의 쌍으로 이루어진 자료형
순서가 (의미) 없다
중괄호 { } 로 선언
키로 접근

student = {
    "name" : "Lee sun ho",
    "age" : "31",
    "job" : "da"
    }
print(type(student))
print(student)
student["name"] = "sun ho LEE"      # name 키의 값을 변경
print(student)
student["grade"] = 95               # 현재 없는 grade 키에 95 지정
print(student)
print(len(student))                 # student 딕셔너리의 키 개수 구하기

딕셔너리의 주요 메소드는 다음과 같다.

메소드설명
keys()모든 키 가져오기
values()모든 값 가져오기
items()키와 값 모두 가져오기
get(key)특정 키의 값 가져오기
pop(key)특정 키 삭제

✔️ Dictionary 키 제거 방법

1) pop 메소드 이용

student = {
    "name" : "Lee sun ho",
    "age" : "31",
    "job" : "da"
    }
student.pop("age")
print(student)		

만약, 딕셔너리의 없는 키를 pop 으로 제거한다면?
→ 당연히 에러가 발생한다. 확인 해보자

student = {
    "name" : "Lee sun ho",
    "age" : "31",
    "job" : "da"
    }
print(student)
student.pop("id")           ## 없는 키 값 pop 메소드 사용 
print(student)


해당 error 는 딕셔너리를 다룰 때 실무에서도 많이 발생하는 문제라고 한다.
당연히 에러가 나서 동작 안하는게 맞지 않나?? 라고 생각하겠지만,
에러가 발생하면 실행은 아예 중단이 된다.

없는 키 값이라면서 에러 없이 진행하는 방법은 뭐가 있을까?
pop ("키" , None) 을 사용하는 것이다.
삭제하려는 키가 없는 키라면, None 을 던지는 것이다.
정확히는 NonType의 None 이라는 값의 반환하는 것

참고사이트 : https://docs.python.org/3.14/library/constants.html#None

student = {
    "name" : "Lee sun ho",
    "age" : "31",
    "job" : "da"
    }
print(student)
student.pop("id", *****None*****)           ## 없는 키 값 pop 메소드 사용 
print(student)


에러코드 발생하지 않고, 아래 print 문까지 출력된 걸 볼 수 있다.
반드시 알아두자

2) del 함수 이용

student = {
    "name" : "Lee sun ho",
    "age" : "31",
    "job" : "da"
    }
print(student)
del student["age"]
print(student)


del 함수 사용 시, 없는 키 값이라면 에러 발생한다.
pop 메소드를 통해 삭제하는 방법을 연습하도록 하자


profile
성장과 회고를 기록하는 일기장

0개의 댓글