공부/파이썬 2021. 8. 22. 17:51

20210822 점프 투 파이썬

02-6 집합 자료형

리스트지만 중복과 순서가 없는 리스트

s1 = set([1,2,3,4])

순서가 제멋대로 라서 순서정렬해서 쓰려면 리스트나 튜플로 변환해서 사용

L1 = list(s1)

말그대로 집합이기 때문에 교집합이나 합집합, 차집합 연산이 가능하다.

교집합 s1 & s2       s1.intersection(s2)

합집합 s1 | s2        s1.union(s2)

차집합 s1 - s2       s1.difference(s2)

교집합, 합집합은 순서 무관 (s1&s2) is (s2&s1) true

집합에 값 하나 추가할땐 s1.add(값), 값 여러개 추가할 땐 s2.update(리스트)

집합내 값 제거는 s1.remove(값)

 

02-7 불 자료형

참거짓. True, False

2>1, 1==1

문자열에 값이 있으면 참 비어있다면 거짓

리스트, 튜플, 딕셔너리, 집합에 값이 있으면 참 비어있다면 거짓

숫자형에서 0은 거짓 그외의 숫자는 참, 숫자가 아니면 거짓

while 조건문:

if 조건문:

else:

bool(값) 으로 참거짓 식별 가능

 

02-8 변수

자료형을 지정하지 않고 사용. 

c나 c++ 과의 차이라면 값(숫자 문자)이 저장된 주소에 대한 저장이라서

a = 3 or "test"

b = 3 or "test" 

이면 a와 b의 id는 동일하다. id(a) == id(b) , a is b True

리스트같은 자료형에선 값에 상관없이 서로 다른 주소를 지정하는 차이가 있다.

a = [1,2,3]

b = [1,2,3] 

인 경우 a와b는 같은 주소가 아니다. 따라서 a리스트의 값을 변경해도 b에는 변화가 없다.

a is b False

하지만 위의 경우에서 

a = b 이렇게 하면 a 에 b의 주소값이 할당되서 같은 주소를 의미하게 된다. 

이경우 a를 변경하면 b도 변경이 된다(같은 리스트의 주소값이기 때문)

b리스트에 a와 동일한 값을 가진 다른 리스트를 넣으려면

b = a[:] 이렇게 리스트 내 값을 하나씩 따로 복사해야 한다.

혹은 

from copy import copy

b = copy(a)

이렇게 copy모듈을 사용해야한다.

a, b, c = 3, 5, 10

(a , b) = 'test1, 'test2'

a, b = ('test4', 590)

[a,b] = [999, 19238]

a = b = c = 'python'

예외

a, b = b, a

이경우 b와 a가 서로 바뀐다.

 

 

 

 

공부/파이썬 2021. 8. 8. 19:14

20210808 - 점프투파이썬

02-3 리스트 자료형 

 - 일단 C의 리스트보단 좀더 쓰기 편하다.

 - a = [ 1, 2, 'd' ] 요런 식으로 

 - 리스트의 인자로 리스트를 넣을 수도 있고

 - 서로 다른 타입의 데이터를 하나의 리스트로 관리하는 것도 가능

 - 데이터 추가, 삭제, 구간자르기, 찾기(인덱스), 벡터나 배열같은 접근 가능

 - 리스트끼리 더하거나( 리스트 뒤에 더해지는 리스트가 붙음)

 - 리스트 더하기를 반복하는 곱샘도 가능하다.

 - 전체를 정렬하거나 순서를 정반대로 바꾸는 것도 한번에 가능

 

02-4 튜플 자료형

 - 수정, 삭제, 추가를 못하는 리스트

 - a = ( 1, 2, 'd' ) 요런 식으로 

 - 상수 쓰듯 쓰면 될듯

 

02-5 딕셔너리 자료형

 - 이거.. std::map 이네 

 - dicTest = { 'anem':'dddd', 1:'vbbb', 'cdv':23234, 'lis':[1,2,3,'dd'] }

 - 리스트랑 마찬가지로 서로 다른 타입의 데이터를 같은 딕셔너리 내에서 관리 가능

 - 좀더 다른거라면 value가 아니라 key에 리스트를 넣을 순 없음

 - 키값만 리스트로 볼수도 있고 dicTest.keys()

 - 반대로 value만 리스트로 볼수도 있고 dicTest.values()

 - dicTest['anem'] 이렇게 value를 접근하거나 (key 없으면 오류 발생)

 - dicTest.get('anem') 이렇게도 가능 (key 없으면 오류대신 None 반환)

 - dicTest.get('oo', 'default?' ) 이러면 key가 없으니 None 반환이지만 'default?'를 대신 반환

 - 'ㅇㅇㅇㅇ' in dicTest 이건 있냐 없냐 없으니까 False

 

My Book 2021. 8. 8. 18:53

[책] 프로젝트 헤일메리 - 앤디 위어

앤디위어 sf소설 3번째!!

아르테미스보단 마션에 가깝다.

 

이제 3번째 출판 소설이라 일반화 하긴 힘들지만

이분 소설은 sf치곤 항상 희망과 농담으로 가득한 느낌이라 읽기 참 좋다.

 

여전히 배경은 지구가 아니고 주인공은 극한상황에 몰려있는데다가

이번엔 기억상실까지 ㅋㅋㅋㅋ