티스토리 뷰
반응형
주의
1. 파이썬은 기본 자료형(immutable)을 제외하면 참조복사다. (Call by object-reference, 값이 아닌 주소를 넘긴다는 의미)
엄밀히 말하면 기본자료형 또한 참조복사 형태로 전달되지만, 수정이 불가능하다.
def func(x):
x = x+1 # 매개변수로 전달된 x의 값이 바뀌는 것이 아닌, x에 11이 재할당된다.
print(x)
a = 10
print(a)
위와 같은 경우에는 x는 기본 자료형인 int이기 때문에 변수에 재할당이 일어나며, a의 값은 변경되지 않는다.
자칫 Java와 같다고 착각할 수 있지만, Java는 기본 자료형(int, double 등)은 값 자체를 복사하고, 객체는 참조값(주소)을 복사한다.
str (문자열)
| 메서드 | 설명 |
| str.upper() | 모두 대문자로 변환 |
| str.lower() | 모두 소문자로 변환 |
| str.strip([chars]) | 양쪽에서 공백 / 지정 문자를 제거 |
| str.replace(old, new[, count]) | 부분 문자열 치환 |
| str.split(sep=None, maxsplit=-1) | 구분자로 나눠 리스트 반환 |
| str.join(iterable) | 구분자 문자열로 요소를 이어붙임 |
| str.find(sub[, start[, end]]) | sub 첫 위치(없으면 −1) |
| str.startswith(prefix[, start[, end]]) | 접두사 여부 확인 |
| str.endswith(suffix[, start[, end]]) | 접미사 여부 확인 |
| str.format(*args, **kwargs) | 포맷 문자열 처리 |
list
| 메서드 | 설명 |
| list.append(x) | 맨 뒤에 x 추가 |
| list.extend(iter) | 여러 원소 한꺼번에 추가 |
| list.insert(i, x) | 인덱스 i에 삽입 |
| list.pop([i]) | 인덱스 i(-1 기본) 꺼내 반환 |
| list.remove(x) | 첫 x 삭제 |
| list.clear() | 비우기 |
| list.index(x) | 첫 x 위치 |
| list.count(x) | x 개수 |
| list.reverse() | 제자리 뒤집기 |
| list.sort(key=…, reverse=False) | 제자리 정렬 |
| list.copy() | 얕은 복사 |
tuple (불변 시퀀스)
| 메서드 | 설명 |
| tuple.count(x) | x 개수 |
| tuple.index(x) | 첫 x 위치 |
(튜플은 수정·삭제·추가 메서드가 없음)
set
| 메서드 | 설명 |
| set.add(x) | 한 원소 추가 |
| set.update(iter) | 여러 원소 추가 |
| set.discard(x) | x 제거(없어도 오류 없음) |
| set.remove(x) | x 제거(없으면 KeyError) |
| set.pop() | 임의 원소 꺼내 반환 |
| set.clear() | 비우기 |
| set.union(*s) | 합집합 반환 |
| set.intersection(*s) | 교집합 반환 |
| set.difference(*s) | 차집합 반환 |
| set.symmetric_difference(t) | 대칭 차집합 |
| set.copy() | 얕은 복사 |
dict
| 메서드 | 설명 |
| dict.get(k, default=None) | 키 k 조회, 없으면 기본값 |
| dict.setdefault(k, default) | 없으면 기본값 저장 후 반환 |
| dict.update(other) | 다른 매핑/키워드로 갱신 |
| dict.pop(k, default) | 키 k 삭제 후 값 반환 |
| dict.popitem() | 마지막 항목 삭제·반환(LIFO) |
| dict.clear() | 모두 삭제 |
| dict.keys() / dict.values() / dict.items() | 뷰 객체 제공 |
| dict.fromkeys(iter, value=None) | 새 딕셔너리 생성 |
| dict.copy() | 얕은 복사 |
깊은 복사가 하고 싶다면 -> import copy & copy.deepcopy(dict)를 활용
collections.deque
| 메서드 | 설명 |
| deque.append(x) / deque.appendleft(x) | 오른쪽 / 왼쪽 끝 삽입 |
| deque.pop() / deque.popleft() | 오른쪽 / 왼쪽 끝 꺼내기 |
| deque.extend(iter) / deque.extendleft(iter) | 여러 원소 삽입 |
| deque.rotate(n=1) | n만큼 회전(양수=오른쪽) |
| deque.clear() | 비우기 |
| deque.reverse() | 제자리 뒤집기 |
| deque.count(x) | x 개수 |
반응형
'PS' 카테고리의 다른 글
| 유클리드 호제법을 이용한 두 수의 최대공약수 구하기 (1) | 2023.12.25 |
|---|---|
| [프로그래머스] 게임 맵 최단거리 (1) | 2023.08.04 |
| [문제] 큰 수의 법칙 (0) | 2023.04.19 |
| [문제] 숫자 카드 게임 (0) | 2023.04.19 |
| [문제] 1이 될 때까지 (0) | 2023.04.19 |
댓글