- 숫자형 : 이뮤터블(immutable)이고, 시퀀스형이 아니다.
- 문자열 :
- str->sequence
- bytes->ascii code, immutable
- bytearray->mutable
- 시퀀스 형 : 순서가 있는 형
- str(unicode)
- bytes
- bytearray
- list
- tuple
- range
- 뮤터블 : 자기 자신이 변할 수 있는 컨테이너
- list
- bytearray
c = 'wow'
id(c) : c의 메모리 주소를 나타낸다.
"wow""baby" : 이런 식으로 사용할 수도 있지만 +를 사용하는 것이 직관력을 더 높인다.
id(d) -> 1498240120200
d = d + [4]
id(4) -> 1498240633544
- 이 현상에서 알 수 있는 것은 파이썬에도 가비지컬렉션이 있다는 것이다.
d.append(5)
d
id(5) -> 1498240633544
- d의 실제 값이 바뀌었음에도 가리키는 주소가 같다. 이런 것을 mutable이라고 한다.
c = (1, 2, 3)
immutable 자기가 가진 id에서 절대로 다른 id로 바뀔 수 없다.
- 속도에 민감한 경우 리스트 대신 튜플을 사용할 수 있다. (속도에 민감한 경우 뮤터블 대신 이뮤터블을 사용할 수 있다.)
a=[1,2,]
b=(1,)
b=(1)과 같이 사용하면 b는 그냥 int가 된다.
그렇기 때문에 b=(1,)처럼 일부러 콤마를 넣어서 사용해야 1이라는 값이 있는 튜플이 된다.
b=1,2,
이런 형태로 저장해도 튜플로 저장된다.
x, y = 1, 2
x에는 1, y에는 2가 저장된다.
x, y = 1, 2, 3
양 변의 갯수가 다르다면 에러가 발생한다.
x, *y = 1, 2, 3
별표를 달고 있으면 나머지를 뜻한다. x에는 1만 들어가고 나머지 값들인 2, 3은 리스트의 형태로 y에 들어간다.
x, *y, z = 1,2,3,4,5,6
x = 1
y = [2,3,4,5] : 리스트 방식으로 결과가 나온다.
z = 6
dir(a) -> a라는 변수를 가지고 쓸 수 있는 메소드들이 무엇인지 알 수 있다.
a : [1, 2]
a.append([3])
a : [1, 2, [3]]
시퀀스에서 하나 딱 찝어서 말할 수 있는 것이면 iterable이다.
b.extend([6]) : extend는 리스트 뒤에 extend 안에 이어서 추가된다.
b.append([7]) : append는 리스트 자체가 리스트에 추가된다.
[1, 2, 3, 4, 5, 4, 6, [7]] -> 마지막의 6, 7이 extend와 append로 추가된 것이다.
- set
- dictionary
a=[1,2,3,4,5]
a[1:]='t'
a -> [1, 't']
파이썬도 다중상속 언어이다, 자바는 인터페이스, C++은 다중상속 언어이다.
문자열, list, tuple, set, dictionary(세 가지 관점의 이터러블) - 이터러블 가능
dictionary view : 키 관점, 밸류 관점, 키와 밸류를 동시에 포함하는 관점(items) 이 세 개로 순환가능하다.
b = {'a':1,'b':2,'c':5}
b.keys() : dict_keys(['a', 'b', 'c'])
b.values() : dict_values([1, 2, 5])
b.items() : dict_items([('a', 1), ('b', 2), ('c', 5)])
range(10) : range(0, 10)
range(3, 10) : range(3, 10)
range(3, 10, 2) : 3, 5, 7, 9
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[::2]
두 개 마다
a[::-1] : [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in (이터러블): -> 이터러블이기 때문에 올 수 있는 것.
in은 멤버십 연산자 (동시에 키워드이다.)
1 in [1, 2, 3] : True
'1' in '1', '2', '3' : (True, '2', '3')
-연산자 우선순위에서 ,보다 in이 앞서기 때문에 True, '2', '3'이 되는 것이다.
1 not in ('1', '2', '3') : True
-not in으로 안에 있는지 없는지 파악가능
keyword.kwlist
container : 원소가 2가지 이상이면 모두 container이다. (숫자, 문자를 묶으면 컨테이너)
파이썬은 앞에서부터 계산한다.
- None, 존재하지 않는다(null). 아무 값도 아니다.
a = None -> 값
이름 = 식(값)
- 할당문, 선언문, 조건문, 반복문, 예외처리문 : 문의 특징은 마칠 때 콜론을 사용한다.
'노력 > 인공지능' 카테고리의 다른 글
6. 파이썬 개인공부 6 (함수) (0) | 2019.03.23 |
---|---|
5. 파이썬 개인공부 5 (함수형 패러다임) (0) | 2019.03.22 |
4. 파이썬 개인공부 4 (반복) (0) | 2019.03.21 |
3. 파이썬 개인공부 3 (데이터 타입, 함수) (0) | 2019.03.20 |
2. 파이썬 개인공부 2 (데이터 타입) (0) | 2019.03.19 |