본문 바로가기

Script/Python

(17)
09. Shallow copy & Deep copy 파이썬은 C#, Java 처럼 해당 자료형의 클래스를 만들고 이를 레퍼런스로 가지고 있기 때문에 변수간에 복사를 하면 값 복사가 일어나는 것이 아니라 참조복사가 일어난다. 따라서 값을 복사해 사용하고자 한다면 copy 모듈을 임포트 한 다음 deepcopy 함수를 사용해야 한다. import copy a = [1,2,3] b = a c = copy.deepcopy(a) # deep copy a[0]= 38 print (a) # [38, 2, 3] print (b) # [38, 2, 3] print (c) # [1, 2, 3]
08. Key container - Set 보통 집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형이다. 이 Set 에는 아래의 두 가지 중요한 특징이 있다. 1.중복을 허용하지 않는다. 2.순서가 없다. (unordered) 선언은 아래와 같이 하면 된다. a = {1,2,3} b = {3,4,5} 제공되는 메서드는 리스트와 거의 유사하며 추가로 교집합과 합집합을 구할 수 있다. Operation - or difference >> 차집합 print(a-b) #{1, 2} 차집합 | or union >> 합집합 print(a|b) #{1, 2, 3, 4, 5} 합집합 & or intersection >> 교집합 print(a&b) #{3} 교집합 = >> 해당 집합이 다른 집합에 속하는지 조사 s.update(s2) >> s2 ..
07. Key container - Dictionary 아래와 같이 Key, Value 쌍을 가지는 컨테이너다. Value 는 숫자, 문자, 리스트 등 여러가지 값이 올 수 있다. a = { 1 : 'hi' } a = { 'a' : [ 1, 2, 3]} Operation d[key] = value > d[key] 를 value 로 바꾼다. > d 에 값을 추가한다. color = {'apple' : 'red' , 'banana' :'yellow'} color['apple'] = 'brown' color['rose'] = 'red' print (color) # {'apple': 'brown', 'banana': 'yellow', 'rose': 'red'} d.clear() > key, value 쌍을 모두 지운다. color = {'apple' : 'red' ..
06. Sequence Container - Tuple 튜플은 리스트와 몇 가지 점을 제외하곤 모든 것이 동일하다. 다른 점은 다음과 같다. • 리스트는 [ ] 으로 둘러싸지만 튜플은 ( ) 으로 둘러싼다. • 리스트는 그 값을 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 변화시킬 수 없다. • 한 개의 요소만을 갖는 튜플은 t2 = (1,) 처럼 한 개의 요소와 그 뒤에 콤마(',')를 넣어야 한다 • 생성시 ( ) 를 생략해도 무방하다. t1 = () t2 = (1,) t3 = (1,2,3) t4 = 1,2,3 t5 = ('a', 'b', (' ab', ' cd'))
05. Sequence Container - List List 빠르고 순차적이서 인덱싱이 가능하고 순회 가능한 타입이다. 선언은 [ ] 를 사용하여 아래와 같이 하면 된다. a = [] b = [1, 2, 3] c = ['Life', 'is' , 'too' , 'short'] d = [1, 2, 'Life', 'is' ] e = [1, 2, ['Life', 'is' ]] List Operation lst.append(val) > lst 끝에 val 을 추가한다. a = [1, 2, 3] a.append(4) print (a) #[1, 2, 3, 4] lst.extend(seq) > 원래의 lst 에 seq 를 더한다. a = [1,2,3] a.extend([4,5]) print (a) #[1, 2, 3, 4, 5] lst.insert(idx,val) > i..
04. Sequence Containers 시퀀스 컨테이너의 경우 ( list, tuple, string, byte ) 여러 방식의 인덱싱이 가능한데 이에 대해 살펴본다. Indexing 아래 규칙에 따른다. lst [ start slice : end slice : step ] 인덱스는 아래와 같이 계산되고 start slice , end slice 인 경우에는 생략할 수 있다. (생략시 양끝단을 가리킴) 각각의 경우에 대한 예는 아래와 같다. lst = [10, 20, 30, 40 ,50] print ( lst[0 ] ) # 10 print ( lst[-1 ] ) # 50 print ( lst[:-1 ] ) # 슬라이스 0 ~ 슬라이스 -1 => 10, 20, 30, 40 print ( lst[1 :-1 ] ) # 슬라이스 1 ~ 슬라이스 -1..
03. Base Types integer 분류 예시 기본 정수 783 널 0 이진수 0b010 팔진수 0o642 십육진수 0xF3 float 9.23 , 0.0 , -1.7e0-6 등이 가능하다. boolean True, False 가 있다. string - "One\n\tTwo" 처럼 "" 사이에 문자를 넣으면 된다. - 위의 \n 은 개행문자 이고 \t 는 탭문자가 된다. - \ 는 특수문자를 문자열 내에 표현할 때 사용한다. - "\0" 은 널문자이다. - 멀티라인 을 나타내고 싶으면 """ ~ """ 에 문자열을 넣는다. - + ,* 연산이 가능하다. - 기본적으로 파이썬3 에서 인코딩은 유니코드다. - 만약 인코딩을 변경하는 경우 '가'.encode('utf-8') 처럼 인코딩을 변경할 수 있는데 이 경우 타입은 바이트가..
02. Eclipse 플러그인_Python PyDev 설치 PyDev 를 이클립스에 설치해보자. PyDev 는 파이선 개발을 위한 이클립스 플러그인인데 이클립스에서 Help > Eclipse Marketplace 메뉴를 클릭하고 PyDev 를 검색해 설치한다. 설치하고 Windows > Preference 메뉴를 선택해서 아래와 같이 설정해 준다. 그러면 자동으로 아래 System libs 가 잡힌다. Project 생성 Perspective 를 열어 PyDev 를 추가한다. 프로젝트 만들기에서 Python 프로젝트를 만든다. 프로젝트에 파일을 추가한다. 자바처럼 패키지 별로 관리할 수 있다.