https://python.bakyeono.net/chapter-5-3.html
파이썬 데이터타입
기본 : 정수, 실수, 불리안
복합 : 문자열, 리스트, 튜플, 딕셔너리, 세트
- 순서 있는 자료형 : 문자열, 리스트, 튜플 (인덱스 슬라이싱 가능)
- 순서 없는 자료형 : 딕셔너리, 세트 (인덱스 슬라이싱 불가능)
- 변경 가능 자료형 : 리스트, 딕셔너리, 세트
- 변경 불가 자료형 : 스트링, 튜플
메모리 할당
c언어 : 변수의 자료형에 맞는 메모리 공간을 먼저 확보하고, 그 공간에 값을 넣는다.
파이썬 : 객체(모든 데이터 타입은 객체)가 만들어 진 후 변수이름이 그 공간을 참조한다.
인덱스 슬라이싱 & 문자열 함수
s=' abc kkk a '
s1='###abc###'
s2='abc def ghi'
s3='000-1111-2222'
s4='abcdefghi'
#index 012345 6 7 8
# -3-2-1
print(s4[0])
print(s4[1])
print(s4[-1])
#slicing [시작인덱스:끝인덱스:증가치]
#시작인덱스<=idx<끝인덱스
print(s4[1:5:2])
print(s4[1:5:1])
print(s4[1:4]) #증가치 default 1
print(s4[1:])
print(s4[:4])#시작인덱스 생략하면 0
print(s4[-1:-4:-1]) #-의 경우에는 -증가치를 반드시 주어야 한다.
print(s4[:-4:-1]) #- 앞 생략한 경우는 -1이 디폴트이다
s[0] = 'b' # 파이썬 string은 변경 불가 자료형이므로 Error
# print(s.strip()) #default는 좌우 화이트 스페이스 제거
# print(s1.strip('#')) #좌우 '#'제거
# print(s2.split()) #화이트스페이스를 기준으로 리스트화
# print(s3.split('-'))
# print(s1.replace('abc','hello'))
파이썬 리스트 & 관련 함수
튜플 & (un)Packing
t = (10,20,30,40,50)
print(t)
print(type(t))
print(t[0])
print(t[2:])
#t[0] = 100 #튜플은 변경 불가
a,b,c = 4,5,6
a=1;b=2;c=3
print(a,b,c)
t1 = 11,22,33 #,연산자인데 변수와 value 갯수가 않맞으면 자동 packing됨(tuple로 자동변환)
print(t1)
#n1,n2,n3 = (5,6,7) #unpacking 튜플
n1,n2,n3 = [5,6,7] #unpacking 리스트도 가능하다
print(n1,n2,n3)
딕셔너리
d={'a':1, 'b':2, 'c':3, 'f':4, 'd' :5}
print(d) #key값을 순차적으로 보여주는것이 아니라 비순차 알고리즘이기에 순서대로 나오는것을 보장할 수 없음
print(type(d))
d['a'] =10 #해당 key 값이 이미 존재한다면 수정
d['e'] = 4 #해당 key 값이 존재하지 않는다면 리스트에 추가
d[1] =5 #해당 key 값이 존재하지 않는다면 리스트에 추가
d.pop('b') #key value로 삭제도 가능
print(d)
print(d.keys())
print(d.values())
print(d.items()) #딕셔너리의 (key, value) 쌍 return
print(d.get('f', 1)) # 해당 key가 없을 때 default값 반환
print(d['c'])
scalar, vector, matrix (0, 1, 2차원 원소 접근법)
s=10 #scalar
v = [10,20,30,40] #vector, 1차원구조
v1 = (10,20,30,40)
v2 = {'a':10, 'b':20, 'c':30, 'd':40}
d = [[1,2],[3,4],[5,6]] #행렬 2차원
d1 = [(1,2), (3,4), (5,6)]
d2 = [{'k':1, 'e':2},
{'k':3, 'e':4},
{'k':5, 'e':6}]
d3 = {'k':[1,3,4], 'e':[2,4,6]}
print(d1)
print(d[0])
print(d[0][1])
print(d1[1])
print(d2[0]['e']) # dictionary의 경우 'key' 값으로 접근
print(d3['k'][2])
'이것저것' 카테고리의 다른 글
판다스 라이브러리 Series (0) | 2019.03.12 |
---|---|
파이썬 연산자 (0) | 2019.03.10 |
pandas, kaggle 정리 (0) | 2019.01.28 |
union-find 알고리즘(파이썬 코드) (0) | 2018.08.19 |
파이썬 기본 문법 정리 (0) | 2018.08.19 |
댓글