*파이썬의 특징
파이썬에서는 인수 전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입되는 방식
call by value , call by referernce가 아니다. 파이썬은 call by object reference 이다.
즉 파이썬의 변수는 값을 갖지않고 객체를 참조하는 방식이다.
뮤터블 : 값을 변경할 수 있음 - 리스트,딕셔너리, 집합
함수 안에서 매개변수의 값을 변경하면 객체 자체를 업데이트 합니다. 따라서 매개변수의 값을 변경하면 호출하는 쪽의 실제 인수는 값이 변경됨
이뮤터블 : 값을 변경할 수 없음 - 숫자, 문자열, 튜플
함수 안에서 매개변수의 값을 변경하면 다른 객체를 생성하고 그 객체에 대한 참조로 업데이트 됩니다. 따라서 매개변수의 값을 변경해도 호출하는 쪽의 실제인수에는 영향을 주지 않는다.
튜플- 원소가 1개 일때 원소 뒤에 ,(쉼표) 반드시 입력 -단순 변수로 여기기 때문
*객체 구분 표
list | mutable 한 순서가 있는 객체 집합 | mutable |
set | mutable 한 순서가 없는 고유한 객체 집합 | mutable |
dict | key와 value가 맵핑된 객체, 순서 없음 | mutable |
bool | 참,거짓 | immutable |
int | 정수 | immutable |
float | 실수 | immutable |
tuple | immutable 한 순서가 있는 객체 집합 | immutable |
str | 문자열 | immutable |
frozenset | immutable한 set | immutable |
언팩- 리스트나 배열을 각각의 변수로 언팩 ex) a,b,c= list
list[-n:] - 맨 끝에서 부터 n개 출력
list[::-1] - 맨 끝에서 부터 전부 출력
자료구조 : 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적 관계
알고리즘 : 어떠한 문제를 해결하기 위한 절차와 방법
등가성- 값이 같은 지==
동일성- 값과 주소가 같은 지 is
리스트 - 값 변경 가능, 딕셔너리 key
튜플 - 값 변경 불가능
리스트 내표 방식 - [ 표현식(출력) for 변수 in 반복가능 객체 if 조건 ]
import 모듈이름 -> 모듈이름.함수이름() , 모듈이름.class이름() ..
from 모듈이름 import 모듈 함수 -> 함수이름()
from 모듈이름 import 모듈함수1 , 모듈함수2 - 여러 함수 사용하기
from 모듈이름 import * - 모든 함수 사용하기
enumerate(배열,시작 수) - 인덱스와 원소를 짝지어 튜플로 꺼내는 함수 ex) for i, name in enumerate(배열):
역순으로 반환 - 배열.reverse()
리스트를 역순으로 - 새로운 리스트에 대입 ex) new_list=list(reversed(old_list))
변수 in ['n','N']: break
복사할 변수.copy() - (얕은복사) 리스트 복사로 참조 값만 복사한다.
(서로에 영향이 가지 않지만 뮤터블안에 뮤터블이 존재할 때
원솟값까지 복사 되기 때문에 복사한 리스트가 변경되면 같이 변경된다)
import copy copy.deepcopy(복사할 변수)- (깊은복사) 리스트 복사로 참조 값 뿐만 아니라 객체 자체를 복사한다.
(복사한 리스트와 분리돼서 구분 된다.)
'Python > 자료구조 내용 정리' 카테고리의 다른 글
자료구조 6장 - 정렬 알고리즘 (0) | 2021.08.13 |
---|---|
자료구조 5장 - 재귀 알고리즘 (0) | 2021.08.09 |
자료구조 4장- 스택과 큐 (0) | 2021.08.02 |
자료구조 - 3장 검색 알고리즘 (0) | 2021.07.29 |
자료구조 - 1장 알고리즘 기초 (0) | 2021.07.27 |