● 1. List & Iteration
- string과 list는 매우 비슷한 data type이므로, 사용할 수 있는 연산자와 함수도 비슷하다.
- 비파괴적인 list 연결 연산자와 달리, 파괴적인 아래 함수들은 list 자체를 바꿔버린다.
연산 (비파괴적) |
+ | 연결 |
* | 반복 | |
len() | element 개수 세기 | |
추가 | list .append(요소) | list 뒤에 추가 |
list .insert(위치, 요소) | list 중간에 추가 | |
list .extend( [요소1, 요소2 ..] ) | 한 번에 여러 요소 추가 (매개변수로 list를 입력) | |
제거 | del list [index] | 위치 기반 제거 (slicing해 여러 개 제거도 가능) |
list .pop(index) | 위치 기반 제거 (index 미입력시 -1로 취급해 마지막 요소 제거) | |
list .remove(data) | 특정 값 제거 (가장 먼저 발견되는 하나만 제거) | |
list .clear() | 내부 요소를 모두 제거 | |
정렬 | list .sort() | 오름차순 정렬 (기본) |
list .sort(reverse=True) | 내림차순 정렬 | |
내부 확인 | data in list | 있으면 True, 없으면 False 출력 |
data not in list | 있으면 False, 없으면 True 출력 |
- for iteration
for iterator in iterable(string, list, dictionary, range...) : 반복할 코드 |
- [예제 p.211] 2차원 list의 모든 element 출력하기
- Spread operator (*)
(1) list 내부에 사용 (출력 값은 list)
이를 이용하면 비파괴적으로 append() 함수와 같은 결과를 구현할 수 있다.
(2) 함수의 매개변수 위치에 사용 (element를 list 밖으로 꺼낼 수 있음)
- [확인 p.214] 홀짝 판단하기
- [확인 p.214] 자릿수 판단하기
- [확인 p.215] 코드 빈칸 채우기 ★
● 2. Dictionary & Iteration
Data type | 의미 | 선언 형식 | 요소 접근 형식 |
List | Index를 기반으로 값을 저장 | list_a = [ ] | list_a [1] |
Dictionary | Key를 기반으로 값을 저장 | dict_a = { } | dict_a ["name"] |
추가 | 새 key를 기반으로 새 값을 입력하면 된다. | |
제거 | del dict [key] | key를 지정해 제거 |
내부 확인 | key in dict | key가 있는지 확인 |
dict .get(key) | 있으면 그 key에 해당하는 값을, 없으면 None을 출력 |
- [확인 p.227] dictionary의 list
- [확인 p.228] list 내에 같은 숫자가 몇 번 등장하는지 세기 ★
- [확인 p.229] dictionary와 list의 중첩 ★
풀이 1 - 내 풀이
풀이 2 - 정답지
★ Self Feedback
"i, j"가 아닌 "key, small_key" 등으로 변수를 설정하는 것이 가독성이 좋아보인다.
● 3. Range data type & while iteration
range(A) | 0 ~ A-1 (정수) |
range(A, B) | A ~ B-1 |
range(A, B, C) | A ~ B-1 (단, 숫자 차이가 C만큼씩) |
- [예제 p.237] 중첩 반복문으로 피라미드 만들기(1) ★
- [예제 p.239] 중첩 반복문으로 피라미드 만들기(2) ★
- while iteration
whie Boolean expression : 반복할 코드 |
특히 1) 무한 반복을 구현해야 하는 경우, 2) 조건을 활용해 반복해야 하는 경우 등에서 while 반복문을 사용한다.
- 반복을 끝내는 키워드
- break : 무한반복을 벗어날 때
- continue : 현재 반복을 생략하고, 다음 반복으로 넘어갈 때
- [확인 p.248] list를 조합해 하나의 dictionary 만들기
- [확인 p.248] limit를 넘을 때까지 정수 더하기
★ Self Feedback : 무한 반복이 아니므로, break는 넣어줄 필요 없다.
- [확인 p.249] n * (100-n)의 최댓값 찾기
풀이 1 - 내 풀이
풀이 2 - 정답지
★Self Feedback
- current라는 변수를 새로 설정해서 if 문에 사용하는 것이 가독성에 더 좋아보인다.
- 정답지처럼 현재 값을 먼저 구하고(current), 원하는 값(max_value)과 비교하는 조건문 방식이 더 논리적으로 보인다.
● 4. string, list, dictionary와 관련된 기본 함수
- 파이썬의 특유한 함수들
함수 | 사용 예시 | 의미 |
min(), max(), sum() | sum(list) | 최댓값/최솟값/총합 |
reversed() | 출력할때 : list ( reversed(list) ) 반복문과 조합 : for i in reversed(list) |
list 뒤집기 |
enumerate() | 출력할때 : list ( enumerate(list) ) 반복문과 조합 : for i, value in reversed(list) |
현재 index가 몇 번째인지 확인 |
items() | dictionary .items() | dictionary로 쉽게 반복문 작성 |
list comprehensions | array = [ i * i for i in range(0, 20, 2) ] | list 안에 for 문 사용 |
'Programming' 카테고리의 다른 글
git (0) | 2024.01.14 |
---|---|
[혼공파] Conditional (1) | 2023.12.15 |
[혼공파] Data type (0) | 2023.12.14 |
[생활코딩] CSS (1) | 2023.11.27 |
[생활코딩] HTML & Internet (1) | 2023.10.28 |