이번 포스팅 내용
1. 리스트와 반복문
2. 딕셔너리와 반복문
3. 범위 자료형과 while 반복문
4. 문자열, 리스트, 딕셔너리와 관련된 기본 함수
1. 리스트와 반복문
리스트란
- 값을 저장할 때 사용하는 식별자
- 파이썬에서 리스트의 의미는 여러가지 자료를 저장할 수 있는 자료입니다.
리스트 선언하고 요소에 접근하기
- 리스트를 생성하는 방법은 대괄호에 자료를 쉼표로 구분해서 입력합니다.
- 대괄호 내부에 넣는 자료를 요소라 하고 영어로는 element라고 합니다.
[요소, 요소, element]
- 각각의 요소가 들어 있는 위치는 숫자 0부터 셉니다. 이때 대괄호 안에 들어간 숫자를 인덱스라고 합니다
- 대괄호 안에 음수를 넣어 뒤에서부터 요소를 선택할 수 있습니다.
- 리스트 접근 연산자를 다음과 같이 이중으로 사용할 수 있습니다.
- 리스트 안에 리스트를 사용할 수도 있습니다.
리스트에서의 IndexError 예외처리
- 이 예외는 리스트의 길이를 넘는 인덱스로 요소에 접근하려고 하면 생기는 예외입니다.
리스트 연결하기
- 연산자 + 의 경우 리스트를 연결할 때 사용합니다.
- 연사자 * 의 경우 리스트를 반복할 때 이용합니다.
- len()의 경우 리스트의 요소 개수를 구합니다.
리스트에 요소 추가하기
- append()함수의 경우 리스트 뒤에 요소를 추가합니다.
- insert() 함수의 경우 리스트의 중간에 요소를 추가합니다.
insert(삽입할 위치, 삽입할 값)
- extend()의 경우 한번에 여러 요소를 추가하고 싶을 때 사용하는 함수입니다.
리스트에 요소 제거하기
인덱스로 제거하기:del 키워드, pop()
- 인덱스로 제거한다는 뜻은 "리스트의 2번째 요소를 제거해주세요"와 같은 의미입니다.
- del 키워드의 경우 리스트의 특정 인덱스에 있는 요소를 지울때 사용합니다.
- pop() 함수의 경우 제거할 위치에 있는 요소를 제거합니다.
값으로 제거 하기: remove()
말 그대로 '리스트 내부에 있는 2를 제거해주세요'와 같은 의미입니다.
모두 제거하기: clear()
리스트 내부의 요소를 모두 제거할 때 사용하는 함수
리스트 정렬하기: sort()
리스트 요소를 정렬하고 싶을 때 사용하는 함수, 기본은 오름차순 정렬입니다.
리스트 내부에 있는지 확인하기:in/not in 연산자
in 연산자는 리스트 내부에 특정 값이 있는지 확인할 때 사용하는 연산자입니다.
not in 연산자는 리스트 내부에 해당값이 없는지 확인하는 연산자입니다.
for 반복문
- 컴퓨터에 반복을 지시하는 방법이 반복문입니다.
리스트와 함께 사용하기
for 반복자 in 반복할 수 있는것 :
코드
리스트에 있는 요소 하나하나가 element라는 변수에 들어가며 반복적으로 출력하게 되는 것입니다.
중첩 리스트와 중첩 반복문
- 반복문을 여러 겹 중첩해 사용하면 중첩 반복문이라고 합니다.
- 중첩 반복문은 일반적으로 n-차원을 처리할 때 사용합니다.
실습문제 (선택미션)
- list_a = [0,1,2,3,4,5,6,7]이 주어질 졌을 때 다음 함수들이 어떤 결과가 나오는지 생각해보세요.
1
2
3
4
5
6
|
list_a.extend(list_a)
list_a.append(10)
list_a.insert(3, 0)
list_a.remove(3)
list_a.pop(3)
list_a.clear()
|
cs |
드래그 하면 정답이 보입니다.
1. [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
2. [0, 1, 2, 3, 4, 5, 6, 7, 10]
3. [0, 1, 2, 0, 3, 4, 5, 6, 7]
4. [0, 1, 2, 4, 5, 6, 7]
5. [0, 1, 2, 4, 5, 6, 7]
6. []
2. 딕셔너리와 반복문
- 딕셔너리는 키(key)를 기반으로 값(value)을 저장하는 것이라고 할 수 있습니다.
- 변수 = { 키: 값, 키: 값, 키: 값 } 으로 선언할 수 있습니다.
딕셔너리의 요소에 접근하기
- 딕셔너리의 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호[]를 입력하고 내부에 키를 입력합니다.
딕셔너리에 값 변경하기
- 딕셔너리에 이미 존재하고 있는 키를 지정하고 값을 넣으면 기존의 값을 새로운 값으로 대치합니다.
딕셔너리에 값 추가하기/제거하기
- 딕셔너리에 값을 추가할 때는 키를 기반으로 값을 입력합니다.
- 값을 제거할 때는 del 키워드를 사용하여 특정 키를 지정하면 됩니다.
딕셔너리의 문자열 키와 관련된 실수
- NameError : 딕셔너리를 만들 때 key 값에 ""을 사용하지 않으면 NameError라는 오류를 발생합니다.
- KeyError : 딕셔너리에 존재하지 않는 키에 접근하면 KeyError가 발생합니다.
딕셔너리 내부에 키가 있는지 확인하기
- in 키워드 : 딕셔너리 내부에 키가 있는지 없는지 확일때 사용하는 키워드
- get() 함수 : 딕셔너리의 키로 값을 추출하는 기능으로 존재 하지 않는키에 접근할경우 None을 출력합니다.
for 반복문: 딕셔너리와 함께 사용하기
3. 범위 자료형과 while 반복문
범위
- 정수로 이루어진 범위를 만들 때는 range()함수를 사용합니다.
- 범위는 다음과 같은 3가지 방법으로 사용할 수 있습니다.
1. 매개변수에 숫자를 한 개 넣는 방법
2. 매개변수에 숫자를 두 개 넣는 방법
3. 매개변수에 숫자를 세 개 넣는 방법
for 반복문: 범위와 함께 사용하기
for 반복문: 리스트와 범위 조합하기
for 반복문: 반대로 반복하기
while 반복문
- for 반복문 외에도 범용적으로 사용할 수 있는 while 반복문이 있습니다.
while 불 표현식:
문장
while 반복문: for 반복문처럼 사용하기
- for 반복문 외에 while을 사용하는 이유는 무한 반복과, 조건을 활용하여 반복을 사용해야 될 때가 있기 때문입니다.
while 반복문: 상태를 기반으로 반복하기
while 반복문: 시간을 기반으로 반복하기
- 시간을 기반으로 반복하려면 유닉스타임을 알아야합니다. 유닉스타임이란 세계 표준시를 기준으로 몇초가 지났는지를 정수로 나타내는 것을 말합니다.
- 유닉스타임을 사용하려면 import time을 선언하여 시간과 관련된 기능을 가져와야 합니다.
while 반복문: break 키워드, continue 키워드
- break 키워드 : 반복문을 벗어날 때 사용하는 키워드입니다.
- continue 키워드 : 현재 반복을 생략하고 다음 반복으로 넘어갈 때 사용하는 키워드입니다.
4. 문자열, 리스트, 딕셔너리와 관련된 기본 함수
리스트에 적용할 수 있는 기본 함수
- min() : 리스트 내부에서 최솟값을 찾습니다.
- max() : 리스트 내부에서 최댓값을 찾습니다.
- sum() : 리스트 내부에서 값을 모두 더합니다.
- reversed() : 리스트에서 요소의 순서를 뒤집고 싶을때 사용하는 함수
- 리스트 이터레이터에 대해서는 아래에서 설명하도록 하겠습니다.
- enumerate() 함수와 반복문 조합하기
딕셔너리의 items() 함수와 반복문 조합하기
- items()함수를 사용하면 key와 value를 조합해서 쉽게 사용할 수 있습니다.
이터레이터
- 반복문 구문에서 "for 반복자 in 반복할 수 있는 것" 에서 반복할 수 있는 것이 프로그래밍 용어로 이터러블이라고 합니다.
- 즉, 이터러블은 내부에 있는 요소들을 차례차례 꺼낼 수 있는 객체를 의미합니다. ex) 리스트, 딕셔너리, 문자열, 튜플 등
- 이터러블 중에서 next() 함수를 적용해 하나하나 꺼낼 수 있는 요소를 이터레이터라고 합니다.
리스트에 reversed()함수를 사용했을 때 나오는 리턴 값이 바로 이터레이터 입니다.
그런데 왜 reversed() 함수는 리스트를 바로 리턴해주지 않냐면 메모리의 효율성을 위해서입니다.
예를들어 1만개의 요소가 들어있는 리스트를 복제한 뒤 뒤집어서 리턴하는 것보다 기존에 있던 리스트를 활용해서 작업하는것이 더 메모리의 효율성이 좋기 때문입니다.
'[기타] 스터디 > [혼공학습단 9기] 파이썬' 카테고리의 다른 글
파이썬 공부 (6) (0) | 2023.02.19 |
---|---|
파이썬 공부 (5) (0) | 2023.02.11 |
파이썬 공부 (4) (0) | 2023.02.05 |
파이썬 공부 (2) (0) | 2023.01.13 |
파이썬 공부 (1) (0) | 2023.01.06 |