책 <파이썬 자료구조와 알고리즘>을 기본으로 배운 자료구조 내용입니다.
목차
-
내장 시퀀스 타입의 깊은 복사와 슬라이싱 연산
-
내장 시퀀스 타입인 문자열, 튜플, 리스트의 기본 형식과 자주 쓰이는 메서드
<내장 시퀀스 타입 - 문자열, 튜플, 리스트>
깊은 복사와 슬라이싱 연산
깊은 복사
얕은 복사가 복합객체(리스트)만 복사되고 그 안의 내용은 동일한 객체를 참조한다면, 깊은 복사의 경우에는 복합객체를 새롭게 생성하고 그 안의 내용까지 재귀적으로 새롭게 생성함.
슬라이싱 연산
seq[start : end : step]
문자열
문자열 메서드
A.join(B) | 리스트 B에 있는 모든 문자열을 단일 문자열 A로 결합 |
A.ljust/ rjust(width, fillchar) | 문자열 A를 맨처음/맨뒤 부터 채운뒤, (width-A길이)만큼 fillchar채움 |
A.format() | 문자열 A에 변수 추가하거나 형식화 |
A.splitlines() | 문자열 A를 \n을 기준으로 분리 |
A.split/ rsplit(t,n) | 문자열 A에서 문자열 t를 기준으로 n번만큼 분리 |
A.strion/ lstrip/ rstrip(B) | 문자열 A 앞뒤의 문자열 B를 제거 |
A.wqpcase() | 대소문자 반전한 복사본 변환 |
A.indes/ rindes(sub, start, end) |
문자열 A에서 부분 문자열 sub의 인덱스 위치를 반환 -> 실패 : ValueError |
A.find/ rfind(sub, start, end) |
문자열 A에서 부분 문자열 sub의 인덱스 위치를 반환 -> 실패 : -1반환 |
A.count(sub, start, end) | 문자열 A에서 부분 문자열 sub가 나온 횟수 반환 |
A.replace(old, new, n) | old를 new로 최대개수n만큼 변경 |
f-스트링 |
기존의 %나 .format 방식에 비해 간결.
name = "프레드" f"그의 이름은 {namd!r}입니다." |
튜플 : ( seq1, seq2, seq3, ... )
튜플 메서드
A.oount(x) : 튜플A에 담긴 항목x의 개수 반환
A.index(x) : 항목x의 인덱스 위치 반환
네임드 튜플 collections
튜플 항목을 인덱스 위치 뿐만 아니라 이름으로도 참조 가능
import collections
리스트 : [ seq1, seq2, seq3, ... ]
검색 속도는 리스트 < 셋, 딕셔너리
리스트 메서드
A.append(x) | 리스트 A의 끝에 x추가 |
A.extend(c) | 반복 가능한 모든 항목 c를 리스트 A에 추가 |
A.insert(i, x) | 리스트 A의 인덱스 T에 항목 x삽입 |
A.remove(x) | 리스트 A의 항목 x제거 |
A.pop(i) | 리스트 A의 인덱스 i에 있는 항목 제거, 그 항목 반환 |
del문 | 리스트 A의 변수 자체, 리스트 내 범위, 인덱스 삭제 가능 |
A.index(x) | 리스트 A에서 항목 x의 인덱스 반환 |
A.reverse() | 리스트 A의 항목들 반전 |
A.sort(key, reverse) |
기본 : 오름차순 정렬 reverse = True : 내림차순 정렬 |
리스트 컴프리핸션 : 반복문의 표현식
[ 항목 for 항목 in 반복 가능한 객체 ] [ 표현식 for 항목 in 반복 가능한 객체 if 조건문 ] |
'⏳ 알고리즘 > python 알고리즘 개념' 카테고리의 다른 글
함수 인자 & 패킹, 언패킹 (0) | 2019.12.31 |
---|---|
배열 기반의 연속 방식(2) - 컬렉션 자료구조(set, 딕셔너리) (0) | 2019.12.31 |
자료구조와 자료구조의 종류 (0) | 2019.12.31 |
시간 복잡도, 공간 복잡도 (0) | 2019.12.23 |
숫자, numpy 패키지 (0) | 2019.12.19 |