문제 1 | 리스트의 요소 읽기
scores = [80, 95, 87, 83, 96, 67, 68, 76]
print(scores) # 전체 리스트
print(scores[0]) # 첫 번째 요소
print(scores[4]) # 다섯 번째 요소
print(scores[2:5]) # 세 번째 ~ 다섯 번째 요소 슬라이싱
📝 해설
리스트는 대괄호 [] 로 묶고, 요소를 쉼표로 구분해 저장합니다.
인덱스는 0부터 시작합니다. scores[0] 이 첫 번째 점수입니다.
scores[2:5] 처럼 슬라이싱으로 일부 구간만 잘라낼 수 있습니다.
문제 2 | 리스트의 요소 읽기 2
colors = ["빨강", "주황", "노랑", "초록", "파랑", "남색", "보라"]
print(colors)
print(colors[0]) # 첫 번째 색
print(colors[2:6]) # 3번째~6번째 색
print(colors[3]) # 4번째 색
📝 해설
문자열도 리스트처럼 인덱스로 접근할 수 있습니다.
색깔 이름이 문자열로 저장된 리스트를 읽어 보는 연습입니다.
문제 3 | 리스트 합치기와 길이 구하기
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print("리스트 c :", c)
print("리스트의 길이 :", len(c))
📝 해설
리스트끼리 + 연산을 하면 이어 붙여진 새 리스트가 만들어집니다.
len(c) 는 리스트 c에 들어 있는 요소 개수를 알려 줍니다.
문제 4 | 리스트에 for문 사용하기
animals = ["펭귄", "토끼", "여우", "원숭이", "사슴"]
for animal in animals:
print(animal)
📝 해설
리스트의 각 요소를 하나씩 꺼내 쓰려면 for 변수 in 리스트: 형태를 사용합니다.
인덱스를 직접 쓰지 않아도 되어서 코드가 더 간단해집니다.
문제 5 | 리스트에 for문 사용하기 2
list1 = [3, 15, 30, "사과", "오렌지"]
print(list1)
for x in list1:
print(x)
📝 해설
하나의 리스트 안에 숫자와 문자열을 섞어서 넣을 수도 있습니다.
for문은 자료형에 상관없이 리스트의 요소를 그대로 꺼내 줍니다.
문제 6 | 성적의 합계와 평균 구하기
scores = [80, 92, 99, 75, 87]
sum_score = 0
for score in scores:
sum_score += score
avg = sum_score / len(scores)
print(f"합계 : {sum_score}, 평균 {avg:.2f}")
📝 해설
리스트에 있는 점수를 하나씩 꺼내서 sum_score 에 누적합니다.
평균은 합계 / 개수 로 계산합니다.
len(scores) 를 이용하면 요소 개수를 쉽게 알 수 있습니다.
문제 7 | 리스트에 while문 사용하기
colors = ["빨강", "주황", "노랑", "초록"]
i = 0
while i < len(colors):
print(f"{i + 1} : {colors[i]}")
i += 1
📝 해설
인덱스를 직접 조절하면서 리스트를 순회하려면 while문을 사용할 수도 있습니다.
i < len(colors) 조건이 거짓이 되면 반복이 멈춥니다.
문제 8 | 리스트에서 3의 배수 출력하기
numbers = [3, 8, 9, 4, 12, 5, 7]
i = 0
while i < len(numbers):
if numbers[i] % 3 == 0:
print(numbers[i])
i += 1
📝 해설
리스트 안에서 3의 배수인 숫자만 골라 출력합니다.
numbers[i] % 3 == 0 조건을 만족하는 값만 출력하는 구조입니다.
문제 9 | sum() 함수로 합계와 평균 구하기
numbers = [17, 8, 12, -3, 5, 9]
total = sum(numbers)
avg = total / len(numbers)
print(f"합계: {total}, 평균: {avg:.1f}")
📝 해설
sum(리스트) 는 리스트 안의 숫자들을 한 번에 더해 줍니다.
이미 준비된 sum() 함수를 쓰면 코드를 훨씬 짧게 만들 수 있습니다.
문제 10 | 리스트 요소 추가하기
member = ["안지영", "010-1234-5678", 15, "수원"]
print(member)
member.append("중학생") # 새 정보 추가
print(member)
member[1] = "010-1111-2222" # 전화번호 수정
print(member[1])
📝 해설
append() 는 리스트의 맨 뒤에 새 요소를 하나 추가합니다.
인덱스를 이용하면 기존 요소를 다른 값으로 바꿀 수 있습니다.
문제 11 | 빈 리스트 만들고 추가하기
fruits = []
fruits.append("사과")
fruits.append("오렌지")
fruits.append("바나나")
print(fruits)
📝 해설
처음에는 빈 리스트 [] 로 시작해서, append()를 이용하여 하나씩 값을 채워 넣을 수 있습니다.
사용자 입력을 받아서 차곡차곡 저장할 때 이런 방식을 많이 씁니다.
문제 12 | 리스트 합계 구하기
scores = []
score1 = int(input("첫 번째 과목 점수는? "))
score2 = int(input("두 번째 과목 점수는? "))
score3 = int(input("세 번째 과목 점수는? "))
scores.append(score1)
scores.append(score2)
scores.append(score3)
total = sum(scores)
print("세 과목 합계:", total)
📝 해설
입력받은 점수를 리스트에 저장한 뒤, sum(scores) 로 합계를 구합니다.
입력 → 리스트에 저장 → 합계 계산까지의 전 과정을 보여줍니다.
문제 13 | remove() 함수로 요소 삭제하기
scores = [80, 70, 90, 100, 60]
print(scores)
scores.remove(70)
print(scores)
📝 해설
리스트.remove(값) 은 리스트에서 “처음 등장하는 값 하나”를 삭제합니다.
70이 여러 번 있을 경우, 앞에서부터 하나만 지워집니다.
remove()는 리스트에 소속된 함수로 특정 점수나 특정 항목을 삭제할 때 사용됩니다.
문제 14 | 리스트 정렬하기
data = [2, 12, -15, 22, -3]
print(data)
data.sort()
print("오름차순 정렬:", data)
data.sort(reverse=True)
print("내림차순 정렬:", data)
📝 해설
sort() 는 리스트 자체를 정렬된 상태로 바꿉니다.
reverse=True 옵션을 주면 반대 방향(내림차순)으로 정렬합니다.
문제 15 | 문자열을 리스트로 변경하기
text = "사자 호랑이 여우"
words = text.split(" ")
print(words)
print(words[0])
print(words[1])
print(words[2])
📝 해설
split(" ") 은 공백을 기준으로 문자열을 잘라서 리스트를 만들어 줍니다.
긴 문장을 단어 단위로 나누거나, 쉼표(,)로 나눈 데이터를 처리할 때 유용합니다.
문자열과 리스트 사이를 오가는 기본적인 방법입니다.
문제 16 | 년월일에서 월 구하기
date = input("하이픈(-)이 포함된 년월일을 입력하세요. (예: 2025-06-02) ")
parts = date.split("-")
print("월:", parts[1])
📝 해설
"2025-06-02".split("-") → ["2025", "06", "02"] 처럼 나누어집니다.
리스트의 두 번째 요소(인덱스 1)가 “월(month)”이 됩니다.