chill chill 맞게 지각해버렸어...
3주차 과제
- 기본 과제: 리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 정리하기
- 추가 과제: p.213 1번 문제 답 쓰고 인증하기
1. 리스트
- (정의) 자료를 저장할 수 있는 자료
- (형식) [요소 1, 요소 2, 요소 3]
- [대괄호] 사용
- 사용 가능 자료형: object, in, float, bool, list, dictionary
- (특징) 인덱스 기반 자료형 (리스트 내부 요소의 위치를 의미)
- (관련 함수)
구분 | 함수 | 형태 | 설명 | 특이사항 |
---|
추가 | append() | list.append(value) | 리스트 뒤 요소 추가 | |
| insert() | list.insert(index, value) | 리스트 내 특정 위치 요소 추가 | |
제거 | del | del list[index] | 리스트 내 특정 위치 요소 제거 | |
| pop() | list.pop(index) | 리스트 내 특정 위치 요소 제거 | index default = -1 |
| remove() | list.remove(value) | 리스트 내 특정 값 제거() | 중복 값 존재시 처음 값 제거 |
| clear() | list.clear() | 리스트 내부 요소 전체 제거 | |
정렬 | sort() | list.sort() | 리스트 요소 정렬 | default = 오름차순 (reserve=False) |
확인 | in | value in list | 리스트 내 값 존재 확인 | 참인 경우 True, 거짓인 경우 False 반환 |
| not in | value not in list | 리스트 내 값 존재 확인 | in 연산자와 반대로 동작 |
2. 리스트와 반복문
for 반복자 in 반복할 수 있는 것:
code
# 중첩 리스트와 중첩 반복문
list_of_list = [
[1,2,3],
[4,5,6,7],
[8,9]
] # 2차원 중접 리스트
# 2차원 리스트 내 요소 개별 출력문
for list_a in list_of_list:
for element in list_a:
print(element)
- (구조)

- (특이사항)
① list_of_list = 2차원 리스트
② list_a = list_of_list의 요소(1차원 리스트)
③ element = list_a의 요소
3. 딕셔너리
- (정의) 자료를 저장할 수 있는 자료
- (형식) {key1:value1, key2:value2}
- {중괄호} 사용
- 사용 가능 자료형: object, float, int, bool, list, dictionary
- (특징) key 기반 자료형
- (접근 방식)
구분 | 선언 형식 | 예시 | 주의사항 |
---|
list | list = [] | list[1] | - |
dict | dict = {} | dict['name'] | 요소 접근 시 [대괄호] 사용 |
구분 | 형태 | 설명 |
---|
추가/대체 | dict['new key'] = new value | key를 기반으로 같이 입력된 value로 새롭게 추가/대체 가능 |
삭제 | del dict['new key'] | 지정된 key에 포함되는 요소 삭제 |
4. 범위 자료형
# (p.234) for 반복문과 범위
# (형태 1) range(a)
for i in range(3)
>>> 0 1 2
# (형태 2) range(a,b)
for i in range(5, 10):
>>> 5 6 7 8 9
# (형태 3) range(a,b,c)
for i in range(0, 11, 5)
>>> 0 5 10
for i in range(1, 10):
for j in range(0, i):
print("★", end="")
print()
★
★★
★★★
★★★★
★★★★★
★★★★★★
★★★★★★★
★★★★★★★★
★★★★★★★★★
다시 찾아오겠습니다... 이렇게 하면 할 수 있대요...
5. while 반복문
- (형식) while bool 표현식:
- (특징) 보통 for 반복문으로 구현하지 못하는 경우일 때 사용(조건, 무한 반복 등)
- (관련 키워드)
구분 | keyword | 형태 | 설명 |
---|
탈출 | break | 반복문 내 위치 | 반복문을 벗어날 때 사용 |
| countinue | 반복문 내 위치 | 현재 반복을 생략하고. 다음 반복으로 넘어갈 때 사용 |
# (p.248) 확인문제 3
limit = 10000 # 제한 수치 설정
i = 1 # 기본 값 설정
sum_value = 0 # 합계 기본 값 설정
while i < 10000: # while 조건문 설정
sum_value += i # 매 회차마다 늘어난 i 덧셈
i += 1 # 매 반복 회차 마다 증가
if sum_value > limit: # sum_value가 limit을 넘는 경우 정지
break
print(f"{i-1}를 더할 때 {limit}을 넘으며 그때의 값은 {sum_value}입니다.")
>>> 141를 더할 때 10000을 넘으며 그때의 값은 10011입니다.
- (특이사항) 답안과는 다르지만 매 반복 회차마다 i의 크기가 1씩 커지며, 늘어난 i는 기존의 sum_value와 합쳐진다. 계속 반복되는 해당 구문은 sum_value가 limit을 넘어서는 순간 멈추고 while문을 빠져나와 print문이 작동된다.
6. 문자열, 리스트, 딕셔너리, 관련 함수
구분 | 함수 | 형태 | 설명 |
---|
리스트 | min() | min(list) | 리스트 내 최솟값 탐색 |
| max() | max(list) | 리스트 내 최댓값 탐색 |
| sum() | sum(list) | 리스트 내 값 합계 산출 |
| reverse() | reverse(list) | 리스트 내 요소 순서 역배열 |
| enumerate() | enumerate(list) | 리스트 요소 정보 탐색 |
| items() | dict.items() | 딕셔너리 내 정보 탐색 |
7. 추가 과제
list_a = [0, 1, 2, 3, 4, 5, 6, 7]입니다. 다음 표의 함수들을 시행했을 때, list_a의 결과가 어떻게 나오는지 적어 보세요
함수 | list_a 값 | 설명 |
---|
list_a.extend(list_a) | [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] | list_a 내 list_a 요소 추가 |
list_a.append(10) | [0,1,2,3,4,5,6,7,10] | list_a 마지막에 요소 추가 |
list_a.insert(3, 0) | [0,1,2,0,3,4,5,6,7] | list_a 내 지정된 인덱스에 요소 추가 |
list_a.remove(3) | [0,1,2,4,5,6,7] | list_a 내 지정된 요소 삭제 |
list_a.pop(3) | [0,1,2,4,5,6,7] | list_a 내 지정된 인덱스 요소 삭제 |
list_a.clear() | [] | list_a 요소 전체 삭제 |
<작성 코드>

- 문제와 답이 살짝 다릅니덩. list_a 초기화 안하고 계속 함수 사용했심덩. 참고하십숑