조건문(if, elif, else) 배우기
여러 개의 데이터를 하나로 묶어 관리하는 가장 강력한 도구, 리스트 정복하기
안녕하세요! 어제 배운 연산자로 숫자를 계산하는 법을 익혔다면, 오늘은 그 소중한 데이터들을 흩어지지 않게 한곳에 모으는 법을 배울 차례입니다. 변수 100개를 만드는 대신 리스트 하나면 충분합니다!
리스트는 대괄호 [ ]를 사용하며, 그 안에 쉼표,로 값들을 구분해서 넣습니다. 숫자, 문자열, 심지어 다른 리스트까지도 담을 수 있는 만능 바구니죠.
# 리스트 만들기 예시
fruits = ["사과", "바나나", "포도", "딸기"]
mixed = [1, "Hello", True, [1, 2, 3]] # 다양한 타입 가능!
empty = [] # 비어있는 리스트도 가능
리스트에서 가장 중요한 점은 "숫자를 0부터 센다"는 것입니다. 이를 인덱싱이라고 합니다.
-1로도 부를 수 있어요 (역순 찾기).
리스트의 일부분을 잘라낼 때는 리스트[시작:끝] 형태를 사용합니다. 이때 끝 인덱스는 포함되지 않는다는 점을 주의하세요!
nums = [0, 10, 20, 30, 40, 50]
print(nums[0]) # 결과: 0 (첫 번째)
print(nums[-1]) # 결과: 50 (마지막)
print(nums[1:4]) # 결과: [10, 20, 30] (인덱스 1, 2, 3까지!)
리스트는 한 번 만들면 내용을 자유롭게 바꿀 수 있습니다. 자주 쓰이는 명령어(메서드)들을 정리해 드릴게요.
| 기능 | 명령어(메서드) | 설명 |
|---|---|---|
| 추가 | .append(값) |
리스트 맨 뒤에 값을 추가합니다. (가장 많이 씀!) |
| 삽입 | .insert(위치, 값) |
원하는 위치에 값을 끼워 넣습니다. |
| 제거 | .remove(값) |
해당 값을 찾아 삭제합니다. |
| 정렬 | .sort() |
가나다/숫자 순서대로 정렬합니다. |
# 리스트 조작 예시
colors = ["red", "blue"]
colors.append("green") # ['red', 'blue', 'green']
colors[0] = "yellow" # ['yellow', 'blue', 'green']
print(len(colors)) # 결과: 3 (리스트의 길이/개수)
Q1. nums[1:4]라고 했는데 왜 4번째 값은 안 나오나요?
A1. 파이썬 슬라이싱의 규칙입니다. [시작 : 끝]에서 끝은 '미만'을 의미해요. 즉, 1 <= index < 4인 항목들만 가져오는 것이죠. 이 규칙은 나중에 배울 반복문에서도 똑같이 적용되니 꼭 익숙해지셔야 합니다!
Q2. 리스트 안에 또 리스트를 넣을 수 있나요?
A2. 네! 이를 '중첩 리스트'라고 합니다. matrix = [[1, 2], [3, 4]]처럼 사용하면 행렬 같은 복잡한 데이터 구조도 만들 수 있습니다. matrix[0][1]처럼 대괄호를 연속해서 써서 값을 꺼낼 수 있어요.
Q3. append()와 extend()의 차이가 뭔가요?
A3. append()는 리스트 자체를 하나의 덩어리로 추가하고, extend()는 리스트 안의 내용물만 쏙 빼서 기존 리스트를 확장합니다.
예를 들어 [1, 2].append([3, 4])는 [1, 2, [3, 4]]가 되지만, extend를 쓰면 [1, 2, 3, 4]가 됩니다.
좋아하는 연예인이나 음식을 담은 리스트 5개를 만들고,
1. 중간에 새로운 항목을 하나 추가하고
2. 가나다순으로 정렬한 뒤 출력해보세요!
댓글
댓글 쓰기