BioPlayground

🧬
목록으로

Python 리스트와 딕셔너리

Python의 리스트와 딕셔너리가 어떻게 다른지, 언제 어떤 걸 써야 하는지 예시로 배웁니다.

입문
|
8
|
검증 완료 (2026-07)
리스트딕셔너리자료형컬렉션키-값 쌍
진행률0/7 (0%)

Python 리스트와 딕셔너리

이 토픽을 마치면

리스트와 딕셔너리의 차이를 설명할 수 있고, 상황에 맞게 골라 사용할 수 있습니다.


리스트 — 순서가 있는 모음

리스트는 여러 값을 순서대로 담는 컨테이너입니다. 대괄호([])로 만듭니다.

python
fruits = ["사과", "바나나", "포도"]
# 인덱싱
print(fruits[0]) # '사과'
print(fruits[-1]) # '포도'
# 수정
fruits[1] = "딸기" # ['사과', '딸기', '포도']
# 추가/삭제
fruits.append("망고") # 끝에 추가
fruits.insert(0, "수박") # 0번 위치에 삽입
fruits.remove("포도") # 값으로 삭제
del fruits[0] # 인덱스로 삭제

리스트는 가변(mutable) 입니다. 만든 뒤에 얼마든지 수정, 추가, 삭제할 수 있습니다.


리스트 순회와 가공

python
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
# 순회
for n in numbers:
print(n, end=" ") # 3 1 4 1 5 9 2 6
# 정렬
sorted_nums = sorted(numbers) # [1, 1, 2, 3, 4, 5, 6, 9] — 원본 유지
numbers.sort() # 원본 자체를 정렬
# 유용한 내장 함수
print(len(numbers)) # 8
print(sum(numbers)) # 31
print(min(numbers)) # 1
print(max(numbers)) # 9
# 리스트 컴프리헨션 — 한 줄로 새 리스트 생성
squares = [x ** 2 for x in range(5)]
# [0, 1, 4, 9, 16]

리스트 컴프리헨션은 for 루프를 한 줄로 압축한 것입니다. Python 코드에서 매우 자주 보이므로 익숙해져야 합니다.


딕셔너리 — 이름으로 찾는 저장소

딕셔너리는 키(key)와 값(value)의 쌍으로 데이터를 저장합니다. 중괄호({})로 만듭니다.

python
user = {
"name": "김훈",
"age": 30,
"email": "hoon@example.com"
}
# 조회
print(user["name"]) # '김훈'
print(user.get("phone")) # None (에러 대신 None 반환)
# 추가/수정
user["phone"] = "010-1234" # 키가 없으면 추가
user["age"] = 31 # 키가 있으면 수정
# 삭제
del user["email"]

리스트가 "몇 번째?"(인덱스)로 찾는다면, 딕셔너리는 "이름이 뭐야?"(키)로 찾습니다. 키는 보통 문자열이지만, 숫자나 튜플도 가능합니다.


딕셔너리 순회

python
scores = {"국어": 90, "영어": 85, "수학": 95}
# 키 순회
for subject in scores:
print(subject) # 국어, 영어, 수학
# 키와 값 동시 순회
for subject, score in scores.items():
print(f"{subject}: {score}점")
# 값만 순회
total = sum(scores.values())
print(f"총점: {total}") # 270
# 키 존재 확인
if "과학" in scores:
print(scores["과학"])
else:
print("과학 점수 없음")

.items()(키, 값) 쌍을 반환합니다. .keys()는 키만, .values()는 값만 반환합니다.


리스트 vs 딕셔너리 — 언제 무엇을

상황선택이유
순서가 중요 (1번, 2번, 3번...)리스트인덱스로 순서 보장
이름으로 찾아야 함 ("name", "age")딕셔너리키로 즉시 접근
중복 값 허용리스트[1, 1, 2, 3] 가능
키는 고유해야 함딕셔너리같은 키 두 번 넣으면 덮어씀
100만 건에서 검색딕셔너리키 검색 O(1) vs 리스트 검색 O(n)

실무에서 가장 흔한 패턴은 딕셔너리의 리스트입니다. 데이터베이스의 테이블을 떠올리면 됩니다.

python
users = [
{"name": "김훈", "age": 30},
{"name": "이수", "age": 25},
{"name": "박진", "age": 35},
]
# 30세 이상만 필터링
seniors = [u for u in users if u["age"] >= 30]

JSON 파일, API 응답, 설정 파일 — 대부분 이 "딕셔너리 리스트" 형태입니다. 이 두 자료형을 자유롭게 조합할 수 있으면, Python 데이터 처리의 기본기를 갖춘 것입니다.