01
리스트는 순서가 있는 값 묶음
리스트는 여러 값을 대괄호 안에 순서대로 저장합니다. 첫 번째 인덱스는 0이고, -1은 마지막 값을 가리킵니다. len()으로 값의 개수를 확인합니다.
일상에서 보면번호가 0번부터 붙은 사물함에 값을 차례대로 넣는 것과 같습니다.
scores = [80, 65, 90]
print(scores[0])
print(scores[-1])
print(len(scores))
한 줄씩 보기- 세 점수를 한 목록에 저장합니다.
- 0번 위치의 첫 값을 꺼냅니다.
- -1로 마지막 값을 꺼냅니다.
- 목록의 길이를 출력합니다.
직접 값 바꾸기scores[1]과 scores[-2]가 같은 값을 가리키는지 확인하세요.
흔한 실수값이 3개인 리스트의 마지막 양수 인덱스는 3이 아니라 2입니다.
짧은 확인다섯 값이 있는 리스트의 마지막 양수 인덱스는 무엇일까요?
02
리스트는 추가·수정·부분 선택할 수 있다
append()는 마지막에 값을 추가하고 인덱스 대입은 특정 위치의 값을 바꿉니다. 슬라이스 [start:stop]은 start부터 stop 직전까지 새 리스트로 가져옵니다.
일상에서 보면할 일 목록 끝에 새 메모를 붙이거나 특정 줄을 고쳐 쓰는 과정입니다.
tasks = ['공부', '운동']
tasks.append('독서')
tasks[1] = '산책'
print(tasks)
print(tasks[:2])
실행 결과['공부', '산책', '독서']
['공부', '산책']
한 줄씩 보기- 두 할 일로 시작합니다.
- 독서를 마지막에 추가합니다.
- 1번 위치를 산책으로 바꿉니다.
- 0번부터 2번 직전까지 선택합니다.
직접 값 바꾸기insert(0, '계획')로 첫 위치에 값을 추가해 보세요.
흔한 실수append()의 반환값은 새 리스트가 아니라 None이므로 tasks = tasks.append(...)로 쓰지 않습니다.
짧은 확인리스트 마지막에 값을 하나 추가하는 메서드는 무엇일까요?
03
리스트를 반복하면 데이터가 흐른다
for로 리스트의 값을 하나씩 꺼내 조건을 확인하거나 합계를 계산합니다. 인덱스가 필요하지 않으면 range(len(...))보다 값을 직접 반복하는 편이 읽기 쉽습니다.
일상에서 보면바구니에서 물건을 하나씩 꺼내 검사하는 과정입니다.
scores = [80, 65, 90]
passed = 0
for score in scores:
if score >= 70:
passed += 1
print(passed)
한 줄씩 보기- 점수 목록을 준비합니다.
- 각 점수를 score로 꺼냅니다.
- 70 이상일 때만 통과 수를 늘립니다.
직접 값 바꾸기70점을 추가해 경계값도 통과하는지 확인하세요.
흔한 실수리스트를 반복하는 중에 remove()로 값을 지우면 일부 항목을 건너뛸 수 있습니다.
짧은 확인인덱스가 필요 없을 때 어떤 형태의 for문이 가장 간단할까요?
04
딕셔너리는 이름으로 값을 찾는다
딕셔너리는 키와 값을 쌍으로 저장합니다. 키는 중복될 수 없고 scores['영어']처럼 이름으로 값을 조회하거나 대입해 수정합니다.
일상에서 보면사전에서 단어를 찾아 뜻을 읽는 것처럼 키로 값을 찾습니다.
scores = {'국어': 80, '영어': 90}
print(scores['영어'])
scores['수학'] = 95
print(scores)
실행 결과90
{'국어': 80, '영어': 90, '수학': 95} 한 줄씩 보기- 과목명을 키로 점수를 저장합니다.
- 영어 키의 값을 조회합니다.
- 새 수학 키와 값을 추가합니다.
직접 값 바꾸기국어 점수를 85로 수정해 보세요.
흔한 실수없는 키를 대괄호로 바로 조회하면 KeyError가 발생합니다.
짧은 확인학생 이름으로 점수를 찾고 싶을 때 리스트와 딕셔너리 중 무엇이 자연스러울까요?
05
키를 안전하게 확인하고 함께 순회한다
in으로 키가 있는지 확인하거나 get()에 기본값을 주면 없는 키를 안전하게 처리할 수 있습니다. items()는 키와 값을 함께 반복합니다.
일상에서 보면서랍을 열기 전에 이름표가 있는지 확인하고, 없다면 빈칸 안내를 주는 과정입니다.
scores = {'국어': 80, '영어': 90}
print(scores.get('수학', '과목 없음'))
for subject, score in scores.items():
print(subject, score)
한 줄씩 보기- 없는 수학 키 대신 기본 문구를 받습니다.
- items()로 과목과 점수를 함께 꺼냅니다.
- 각 쌍을 출력합니다.
직접 값 바꾸기'국어' in scores와 '수학' in scores 결과를 비교하세요.
흔한 실수in scores는 값이 아니라 키의 포함 여부를 검사합니다.
짧은 확인없는 키에서 오류 대신 기본값을 받는 메서드는 무엇일까요?