파이썬 이론 2회차_파이썬 자료 구조

김채윤·2025년 12월 9일

파이썬 자료 구조에는 리스트, 튜플, 딕셔너리가 있다.
리스트: 순서가 있고 수정 가능
튜플: 순서가 있고 수정 불가능

ages = [10, 23, 40, 35]
age1 = ages[0]  # 인덱싱
age2 = ages[1]  # 인덱싱
age4 = ages[-1]  # 인덱싱
age1_age2 = ages[0:2]  # 슬라이싱

값을 여러 개 넣고 싶을 때 리스트 형식으로 넣는 게 가능하다
값을 하나만 가져오는 것을 인덱싱, 여러 개 가져오는 것을 슬라이싱이라고 한다.
슬라이싱은 시작숫자:끝숫자+1으로 입력한다

리스트

리스트에서 자주 사용하는 메서드

1. append

리스트의 맨 뒤에 값을 넣어주는 매서드

ages 리스트 맨 뒤에 60이 추가된 것을 확인할 수 있다.

2. insert

리스트의 원하는 위치에 값을 넣어주는 매서드

ages 리스트의 1번 자리에 15가 추가된 것을 확인할 수 있다.

3. remove

리스트에서 원하는 값을 지워주는 매서드

단, 해당하는 값이 중복될 때 앞에 있는 값만 지워준다


리스트 마지막에 60이 있고 append로 뒤에 60을 또 하나 추가했다.
remove로 60을 지웠을 때 앞에 있는 60만 지워진 것을 확인할 수 있다.

4. pop

리스트의 맨 뒤에 있는 값을 제거하고(remove와 비슷), 그 제거된 값을 꺼내주는 매서드

ages.pop()을 last_age로 지정해주고 print하면 60이 제거된 리스트와 제거된 값인 60을 출력해준다.

ages = [10, 20, 30]
#나이가 많은 순으로 10씩 더해서 출력
pop 30 + 10, pop 20 + 10, pop 10 + 10

pop을 쓰면 제일 뒤에 있는 값을 제거하므로 이런 식으로 값을 하나씩 추출해서 뭔가를 할 때 유용하게 사용할 수 있다.

5. sort

리스트를 오름차순으로 정렬해주는 매서드

sort(reverse=True)

를 입력해주면 내림차순으로 정렬해준다.

다음과 같이 문자열도 정렬이 가능하다.

문자열은 알파벳순으로 정렬해준다


오름차순 내림차순 정렬이 가능하다

튜플

ages = (10, 20, 34)  # 튜플 형태라서 수정이 불가능하다
ages = [(10, 20), (30, 40)]  # 튜플으로 이루어진 리스트이기 때문에 ()단위로는 수정이 가능하다(정렬, 삭제, 삽입 등)

딕셔너리

키(key)와 값(value)의 쌍으로 이루어진 자료형으로 키를 이용해서 접근한다.
순서가 중요하지 않다.

student = {
    "name": "Hannah",
    "age": 25,
    "major": "Data Science"
}

name, age, major이 키, Hannah, 25, Data Science가 값이다.

print(student["name"])    # name에 해당하는 값 출력
student["age"] = 26       # 값 수정
student["grade"] = "A+"   # 새 키 추가
print(student)

다음과 같이 출력된다.
Hannah
{'name': 'Hannah', 'age': 26, 'major': 'Data Science', 'grade': 'A+'}
딕셔너리에서 주로 사용하는 메서드는 다음과 같다.

get은 입력한 키가 존재하지 않을 때 에러가 나고 멈추는 것이 아니라 None으로 출력된다.

리스트 안에 딕셔너리 형태로, 리스트로 순서를 주고 딕셔너리로 정체를 알려주는 형태도 많이 사용한다.

students = [
    {"name": "Hannah", "age": 25, "score": 90},
    {"name": "Minji", "age": 21, "score": 85},
    {"name": "Yumi", "age": 23, "score": 95}
]

실습

리스트 활용

리스트의 평균을 구해보자

scores = [91, 85, 77, 95, 88]

sum_scores2 = sum(scores)
length_scores2 = len(scores)

m2 = sum_scores2 / length_scores2

이것 외에도 max_socre = max(scores) min_score = min(scores) 내장함수도 자주 사용한다.
리스트의 값을 수정해주고 싶을 때에는

scores[0] = 100
print(scores)

# [100, 85, 77, 95, 88]이 출력

딕셔너리 활용

student = {
    "name": "Hannah",
    "age": 25,
    "major": "Data Science"
}

# name의 값을 바꾸기
student["name"] = "Yumi"
print(student["name"])
# Yumi가 출력

0개의 댓글