ㅇ 교육일 : 2026년 4월 8일
ㅇ 주제
리스트를 구분해서 활용하고, 반복문 사용하기
ㅇ 목표
° 단기간 실습을 통해 숙달하는 시간을 갖고, 정답만을 원하지 않는다.
° 실제 개발 현장에서 데이터를 어떻게 묶고, 어떻게 반복적으로 처리하는지 이해하려고 노력한다
ㅇ 내용
1. lst 구문 활용법
1.1. 리스트를 사용하는 이유
° 변수는, "하나의 값을 저장할 수 있는 저장공간"을 의미
° 리스트는, 여러개의 데이터를, 자료형 구분 없이, 한 번에 저장사용, 개발자가 편리하게 개발언어 활용
1. 2. 리스트 선언 방법
- 리스트 자료형 사용법 : 리스트를 만드는데 사용될 모든 데이터들을 [ ] (대괄호)로 묶고, 각 요소들을 ,(콤마)로 구분
1. 3. 리스트 요소 접근 방법
- index란? 프로그래밍 인덱스(Index), 복합 자료형의 각 요소를 구분하고 식별하는 기준, 일반적 변수의 경우, 변수명 자체가 중복되지않으며, 하나의 데이터를 고유하게 식별하고 참조함. 그러나 **복합 자료형(예: 배열, 리스트, 문자열 등)**에서는 하나의 변수명 아래 여러 데이터가 포함되기 때문에, 변수명만으로 각 데이터 구분불가
이때, 인덱스를 사용하여 각 요소를 구분하고 접근. 즉, 인덱스는 복합 자료형 안의 데이터를 식별하고 참조하기 위한 위치 정보이다.
2. 반복문을 사용 하는 이유
1.1. for, range( ) 함께 사용하여 반복
- 파이썬에서 for문과 range() 함수는 뗄 수 없는 단짝 같은 존재
- range() 함수는 연속된 숫자를 생성하며, 보통 반복 횟수를 지정할 때 사용,
문법: range(start, stop, step), 특징: stop으로 지정한 숫자는 미포함
# 0부터 4까지 5번 반복
for i in range(5):
print(i) # 출력: 0, 1, 2, 3, 4
1. 2. range( )로 리스트 비교
두 개의 리스트를 인덱스를 기준으로 비교할 때 range(len(리스트))를 사용. 단순히 요소를 꺼내는 것이 아니라
"위치(index)"를 제어할 수 있다는 것이 장점
- 예: 두 리스트에서 같은 위치에 있는 값을 비교하여 다른 부분 찾기
list_a = [10, 20, 30, 40]
list_b = [10, 25, 30, 45]
for i in range(len(list_a)):
if list_a[i] != list_b[i]:
print(f"인덱스 {i}번의 값이 다릅니다: {list_a[i]} vs {list_b[i]}")
1. 3. range( ), 리스트, 문자열과 인덱스 사용
문자열이나 리스트의 특정 구간을 순회하거나, 인덱스 번호를 직접 다뤄야 할 때 유용
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
fruits[i] = fruits[i].upper() # 모든 요소를 대문자로 변경
문자열도 리스트처럼 인덱스를 가진다. 특정 문자의 위치를 파악하거나 역순으로 출력할 때 활용함
text = "Python"
# 인덱스를 활용해 한 글자씩 출력
for i in range(len(text)):
print(f"{i}번째 글자: {text[i]}")
# 역순 출력 (뒤에서부터 시작)
for i in range(len(text)-1, -1, -1):
print(text[i], end="") # nohtyP
<리스트 관련 함수> ** 함수과정은 어렵다 **
reverse() 리스트 순서 뒤집기
sort() 오름차순 정렬
sort(reverse=False) 내림차순 정렬
count(값) 특정값의 갯수 구하기
가변mutable, 불변immutable
변수가 참조하는 메모리의 이해, 파이썬의 모든 자료형은 객체(포인터)
<<<리스트의 핵심 메서드와 데이터의 성질에 대해>>>
1. 리스트 주요 메서드 (Method)
*** reverse() : 순서 뒤집기, 리스트의 요소를 단순히 역순으로 재배치 한다, (정렬이 아님에 주의!)
nums = [1, 5, 3]
nums.reverse()
print(nums) # [3, 5, 1]
*** sort() : 정렬하기 :
sort() / sort(reverse=False): 오름차순 정렬 (1, 2, 3...)
sort(reverse=True): 내림차순 정렬 (3, 2, 1...)
- 내림차순을 하려면 True로 설정해야 한다
nums = [1, 5, 3]
nums.sort() # 오름차순: [1, 3, 5]
nums.sort(reverse=True) # 내림차순: [5, 3, 1]
*** count(값) : 개수 세기
리스트 안에 특정 값이몇 개들어있는지 반환한다.
nums = [1, 2, 2, 3, 3, 3]
print(nums.count(3)) # 3
*** 가변(Mutable) vs 불변(Immutable)
- 가변
가변은 생성후 수정 가능하다. 데이터를 추가, 삭제, 변경해도 메모리 주소값이 바뀌지 않고 그 안의 값만 바뀐다,
종류: list, dict, set
a = [1, 2, 3]
a[0] = 100 # 수정 가능!
- 불변 : 생성후 수정 불가, 한번 정해지면 값을 바꿀 수 없다. 값을 바꾸려고 하면 새로운 객체를 생성하여 주소값을 바꾼다.
종류: int, float, str, tuple
s = "Hello"
# s[0] = "h" <- 오류 발생 (수정 불가)
s = "hello" # 이건 수정이 아니라 새로운 "hello"를 s에 대입한 것
["실습 및 이해"]
*** 실습문제를 풀어 본다
*** 설계(순서도)를 작성해 본다
***순서도 작성 사이트 app.diagrams.net/

'학습 로그 > Python3' 카테고리의 다른 글
| D+9 [Python] 예제문제 풀이 및 실습 (0) | 2026.04.13 |
|---|---|
| D+8 [Python] 함수 예제문제 풀이 (0) | 2026.04.10 |
| D+8 [Team Porject] 팀플 전 브레인스토밍 (1) | 2026.04.10 |
| D+7 [Python] 함수, 로직과 순서도 (0) | 2026.04.09 |
| D+5 [Python3] 조건문 실습 (0) | 2026.04.08 |