파이썬의 데이터형

2022. 10. 21. 09:49Programming language/Python

자료구조를 학습할 수 있는 파이썬 데이터 형식의 분류

기본 데이터형

파이썬에서 정수는 int 하나뿐이고 크기에도 제한이 없다. 실수는 float 하나뿐이며 소수점 아래 16자리까지 정밀도를 보장한다.

 

리스트(변경이 가능한 데이터 형식)

다른 프로그래밍 언어의 배열(Array)과 비슷한 개념

# 리스트 생성 1
aa = [10, 20, 30, 40]
# 리스트 생성 2
bb = []
for i in range(0, 4):
    aa.append(0)
len(aa) #4
# 리스트 값에 접근하는 방법 1 - 첨자로 접근
aa[-1] # 첨자는 맨 뒤부터 -1 값으로 사용한다

# 리스트 값에 접근하는 방법 2 - 콜론(:) 사용
aa[0:3] # 리스트이름[시작값:끝값+1]
aa[2:]
aa[:2]

리스트 조작 함수
myList = [30, 10, 20]

컴프리헨션 -> 리스트 = [수식 for 항목 in range() if 조건식]
numList = [num for num in range(1, 21) if num % 3 == 0]
numList #[3, 6, 9, 12, 15, 18]
# 2차원 리스트
# 3행 4열짜리 리스트는 첨자가 가로는 0~2, 세로는 0~3으로 변한다
list2 = [[0 for _in range(4)] for _in range(3)] # 3 X 4 크기의 0이 채워진 2차원 리스트

 

딕셔너리(변경이 가능한 데이터 형식)
딕셔너리변수 = {키1:값1, 키2:값2, ...}
# 딕셔너리 생성
dic1 = {1 : 'a', 2 : 'b', 3 : 'c'}
dic2 = {a : '1', b : '2', c : '3'} # 딕셔너리에는 순서가 없다
dic1['4'] = 'e' # 쌍 추가
dic1['4'] = 'd' # 이미 존재하는 키를 사용하면 키는 유일해야 하기 때문에 값을 수정한다
dic2 = {a : '1', b : '2', c : '3', a : '4'} # 마지막 키가 적용된다

# 딕셔너리 쌍 삭제
del(dic1['4'])
# 딕셔너리이름[키]는 없는 키를 호출하면 오류가 발생하지만 .get(키)는 없는 키를 호출하면 아무것도 반환하지 않는다
# 키를 사용하여 값을 구함
student['학번'] #2000
# 딕셔너리이름.get(키) 함수를 사용하여 키로 값에 접근할 수 있다.
student.get('학번')

# 딕셔너리이름.keys()는 딕셔너리의 모든 키를 반환한다
student.keys() #dict_keys(['학번', '이름', '학과'])
list(student.keys()) #['학번', '이름', '학과']

# 딕셔너리이름.values()는 딕셔너리의 모든 값을 리스트로 만들어 반환
student.values() #dict_values([2000, '홍길동', '파이썬학과'])
list(student.values())

# 딕셔너리이름.items()는 튜플 형태로 구하기
student.items() #dict_items([('학번',2000),('이름','홍길동'),('학과','파이썬학과')])

# 딕셔너리 안에 해당 키가 있는지 없는지 in을 사용하여 확인
'이름' in student # 키가 있다면 True를 반환
'주소' in student # 키가 없다면 False를 반환

 

세트(변경이 가능한 데이터 형식)
세트는 키만 모아 놓은 딕셔너리의 특수한 형태다. 세트에 들어 있는 값은 항상 유일하며 순서가 없다.
mySet1 = {1, 2, 3, 3, 4} # 중복된 키는 자동으로 하나만 남는다
mySet1 #{1, 2, 3, 4}

# set() 함수는 리스트, 튜플, 딕셔너리 등을 세트로 변경한다

 

문자열(데이터를 저장해 놓으면 변경할 수 없는 데이터 형식)
ss = "알고리즘"
ss[0]
ss[1:4]
ss[2:]
ss = '자료구조' + '알고리즘'
ss = '파이썬'*3
len(ss)

# 문자열 분리와 결합
# split() 함수는 문자열을 공백이나 다른 문자로 분리하여 리스트를 반환한다
ss.split() # 공백으로 분리
ss.split(:) # ':'로 분리
ss.splitlines() # '\n'(행 단위)으로 분리
# 구분자.join('문자열') -> join() 함수는 문자열을 서로 합친다
ss = '%' # 묶어 줄 구분자를 준비
ss.join('파이썬') #'파%이%썬'

# map(함수이름, 리스트이름) -> 리스트의 문자열 하나하나를 함수 이름에 대입
after = list(map(int, before)) # int(before[0]), int(before[1]), int(before[2])

 

튜플(데이터를 저장해 놓으면 변경할 수 없는 데이터 형식)
튜플은 소괄호 ()로 생성한다. 값을 수정할 수 없으며, 읽기만 가능하다.
tt1 = (10, 20, 30); tt1
tt2 = 10, 20, 30; tt2
tt3 = (10,); tt3 # 항목이 하나인 튜플은 뒤에 쉼표를 붙여야 한다
tt4 = 10,; tt4 #(10,)

# 튜플은 읽기 전용이므로 개별 항목을 수정 불가하고 튜플 자체 삭제만 가능하다
del(tt1)

tt1[0] # 튜플 항목에 접근
tt1[0:2]
tt1 + tt2 #(10, 20, 30, 10, 20, 30)
tt2 * 2 #(10, 20, 30, 10, 20, 30)

# 튜플과 리스트는 서로 변환할 수 있다
myList = list(tt1)
myList.append(40)
myTuple = tuple(myList)
myTuple #(10, 20, 30, 40)

 

더보기

참고자료 : 이것이 취업을 위한 코딩 테스트다 with 파이썬, 파이썬 자료구조와 알고리즘 for Beginner

 

'Programming language > Python' 카테고리의 다른 글

python (알고리즘 구현을 위한)기초 문법  (0) 2023.09.10
Python 문법들  (0) 2023.02.26