파이썬의 데이터형
2022. 10. 21. 09:49ㆍProgramming 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]
컴프리헨션 -> 리스트 = [수식 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 |