[Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] 개념 정리
1) 배열
Python에서 List, Tuple (a.k.a. Data Container)
특징
: 묶음 단위로 값을 저장
: 하나하나는 원소라 부름
: 서로 다른 자료형을 같이 저장 가능
: 배열 원소 자체를 배열에 저장 가능함
1-1) 스캔
: 배열 원소를 하나씩 차례로 주목하여 살펴보는 방식 (traverse)
cf) 리스트 스캔하는 방법
1) 원소 수를 len(함수)로 미리 알아내서 range로
2) enumerate( ) 함수 사용
3) 인덱스 x, in 사용 => 처음부터 순서대로 꺼냄
1-2) 주석, 자료형 hint ; annotation
from typing import Any, Sequence
def max_of(a:Sequence) -> Any:
: 매개변수 a의 자료형은 sequence ; mutable, immutable 가능
: 반환하는 것은 임의의 자료형인 Any
1-3) 모듈 (module)
: 하나의 스크립트 프로그램
: 확장자(.py)를 포함하지 않는 파일의 이름 자체를 모듈 이름으로 사용
__name__
: 모듈 이름을 나타내는 변수
: script program이 직접 실행될 때 __name__은 '__main__'
: script program이 임포트 될 때 변수 __name__은 원래의 모듈 이름
cf) 모듈 객체에는 __name__ 이외에도 __loader__, __package__, __spec__, __path__, __file__ 등이 있음
1-4) 리스트를 역순으로 정렬
1) 리스트 자기자신을 역순으로 정렬
: x.reverse( )
2) 역순으로 정렬한 리스트 생성
: list(reversed(x))
: x의 원소를 역순으로 꺼내는 이터레이터(반복자)를 반환
참고) n진수 구하기
2) 자료구조 (Data Structure)
: 논리적 관계로 이루어진 데이터 구성
: 데이터 단위와 데이터 자체 사이의 물리적 혹은 논리적 관계
: 컴퓨터에서 처리해야하는 많은 data를 모아 효율적으로 관리, 구조화
2-1) List
: mutable list형 객체 (원소 변경 가능)
특이점
list01 = list((1, 2, 3)) # [1, 2, 3]
list02 = list({1, 2, 3}) # [1, 2, 3]
list03 = [None] * 3 # [None, None, None]
2-2) Tuple
: immutable 자료형 (원소에 순서를 매겨 결합한 것으로 원소 변경 불가)
특이점
# 원소 1개만 갖는 튜플은 쉼표 필수
tuple01 = 1, # (1,)
tuple02 = (1,) # (1,)
tuple00 = (1) # 1; 튜플 아닌 int형 변수
tuple03 = 1, 2, 3 # (1, 2, 3)
tuple04 = 1, 2, 3, # (1, 2, 3)
tuple05 = (1, 2, 3,) # (1, 2, 3)
tuple06 = tuple('ABC') # ('A', 'B', 'C')
tuple07 = tuple([1, 2, 3]) # (1, 2, 3)
tuple08 = tuple({1, 2, 3}) # (1, 2, 3)
2-3) List & Tuple
if x:
# x가 비어있지 않으면 true
else:
# x가 비어있지 않으면 false
[1, 2, 3] < [1, 2, 4]
등가성(equality) : 값이 같은지 => ==
동일성(identity) : 값과 식별번호 같은지 => is
2-4) 언팩 (unpack)
좌변에 여러개 변수, 우변에 리스트나 튜플
: 우변 원소를 좌변 변수에 한번에 대입 가능
x = [1, 2, 3]
a, b, c = x
a, b, c # (1, 2, 3)
2-5) 슬라이스 (slice)
# s[i]부터 s[j-1]까지 k씩 건너뛰며 나열
s[i : j : k]
특징
1) i, j가 len(s)보다 크면 len(s)가 지정된 것으로 간주
2) i가 없거나 None이면 0이 지정된 것으로 봄
3) j가 없거나 None이면 len(s)가 지정된 것으로 봄
4) s[::-1]은 리스트 s의 원소 중 맨 끝부터 전부 출력
2-6) mutable과 immutable의 대입
mutable 자료형
: 리스트, 딕셔너리, 집합 등 값 변경 가능
immutable 자료형
: 수, 문자열, 튜플, 값 변경 불가
=> 값에 어떤 값 대입시 값 자체가 아닌 식별 변호가 바뀜
* 대입식은 값 자체가 아닌 참조하는 객체의 식별번호를 대입
* C, C++, java에서는 =를 결합연산자로 사용하나, python에서는 결합 연산자가 아님
'Review > SW Jungle' 카테고리의 다른 글
[WEEK01] 검색 알고리즘 (선형검색 / 이진검색) + 트리자료구조 (0) | 2022.09.26 |
---|---|
[WEEK01] 함수의 인수와 매개변수 / 객체의 복사 (0) | 2022.09.25 |
[WEEK01] 파이썬 개념 (0) | 2022.09.25 |
[WEEK01] 특별한 과제 (0) | 2022.09.24 |
[WEEK00~WEEK01] Server-Side Rendering / Jinja2 (0) | 2022.09.22 |