파이썬 자료형
자료구조
컴퓨터에서의 자료 구조 => 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키는 방법/학문
- 여러개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라 한다.
자료구조는 각각의 컨테이너 자료형에 따라서 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋(Set) 이 있다.
List => sutdents = ['홍길동', '박찬호']
Tuple => jobs =('의사', '속기사')
Dic => scores = {'kor':88, 'eng':91}
Set = > allSales = {100, 150}
리스트(List)
-
리스트(List) : 배열과 같이 여러 개의 데이터를 나열한 자료구조
-
[] 를 이용해서 선언, 데이터 구분은 ' , ' 를 이용한다.
-
숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
-
리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
str = [3.14, '십', 20, 'one']
lists = [1, 2,3, [1, 2, 3]]
- 인덱스(index) : 아이템에 자동으로 부여되는 번호표, 0부터 시작!
- 리스트의 길이 : 리스트에 저장된 아이템 개수를 뜻함 len()을 통해 조회가능
- len()은 리스트의 길이뿐 아니라 문자열의 길이도 조회가능.
- for문을 이용한 내부 리스트 조회 : for문을 이용하면 리스트의 아이템을 자동으로 참조할 수 있따.
studentCnts = [[1,19], [2, 20], [3, 22], [4, 18]]
for classNo, cnt in studentCnts:
print("{}학급 학생수 : {}".format(classNo, cnt))
output : 1학급 학생수 : 19
2학급 학생수 : 20
- enumerate() : 인덱스와 아이템을 한번에 조회하는 함수
sports = ['농구', '수구', '축구', '마라톤', '테니스']
for idx, value in enumerate(sports):
print('{} : {}.format(idx, value)')
- enumerate()는 문자열에도 적용할 수 있다
str = 'Hello python'
for idx, value in enumerate(str):
print('{} : {}.formate(idx, value)')
- 사용자가 입력한 문자열에서 공백의 개수를 출력
message = input('메시지 입력 : ')
cnt = 0
for idx, value in enumerate(message):
if value == ' ':
cnt += 1
print("공백 개수 : {}".formate(cnt))
-
.append(item) : 마지막 인덱스에 아이템을 추가할 수 있다.
-
.insert(index, item) : 특정위치(인덱스)에 아이템을 추가할 수 있다.
-
.pop(index) : 해당 인덱스에 해당하는 아이템을 삭제해주고 반환해줌, 안넣으면 맨끝 삭제
-
.remove(item) : 특정 아이템을 삭제할 수 있다.
remove는 한 개의 아이템만 삭제 가능하다, 삭제하려는 데이터가 2개 이상이라면 while문을 이용해야한다.
-
.extend() : 리스트에 또 다른 리스트를 연결(확장)이 가능하다. => 기존리스트에서 확장
-
덧셈연산자를 이용해서 리스트를 연결할 수도 있음. => 새로운 리스트가 생성됨
-
.sort(reverse=option) : 아이템을 정렬할 수 있다. reverse=True 선택시 내림차순 정렬
-
.reverse() : 아이템 순서를 뒤집어 준다.
리스트 슬라이싱
-
List[n : m : k]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다. (n to m-1, 간격은 k)
-
음수사용시 뒤에서부터 계산
-
슬라이싱을 이용해서 아이템을 변경할 수 있다.
students = ['a', 'b', 'c']
students[1:2] = ['p', 'k', 'l']
output : a, p ,k, l, b, c
- slice()함수를 이용해서 아이템을 슬라이싱할 수 있다.
students[slice(2)]
-
리스트의 곱셈 연산 : 리스트를 곱셈 연산하면 아이템이 반복된다.
-
index(item,start,end) : item의 인덱스를 찾아줌, 단 여러개가 존재할시 앞에부터 리턴!. start랑 end 지정해주면 그 사이에 ㅣ있는걸 찾아주기도 함.
-
count() : 특정 아이템의 개수를 알아낼 수 있음.
-
del 키워드를 이용하면 특정 아이템을 삭제할 수 있다.
students = ['홍길동', '강호동', '박찬호', '이경규']
del students[1]
del students[1:3]
튜플(Tuple)
- 튜플(Tuple) : 리스트와 비슷하지만 아이템 변경(수정, 삭제 등) 불가
- '()'를 이용해 선언하고, 데이터 구분은 ','를 이용한다. 선언 시 괄호 생략이 가능하다.
- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
- 튜플에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
strs = (3.14, 'ten', 20)
datas = (10, 20, 30, (40, 50, 60))
- Index : 튜플도 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표가 있다.
아이템의 존재 유/무 판단하기
- in, not in 키워드를 이용하면 아이템의 존재 유/무를 판단할 수 있다.
- not in = > 아이템이 존재하지 않으면 True, 있으면 False 반환
studentsTuple = ('홍길동', '박찬호', '박승철', '김지은')
searchName = input('학생이름 입력')
if searchName in studentsTuple:
print("까궁")
else:
print("힝")
- 덧셈연산으로 기존 튜플을 합친 새로운 튜플 연산가능, extend()같은건 적용 할 수 없다.
- (number, ) 처럼 item하나 넣고 콤마(,)를 해주면 튜플로 선언가능
- 리스트와 튜플은 자료형 변환이 서로 가능하다.
- 튜플 정렬 : 튜플은 수정이 불가능하기 때문에 리스트로 변환 후 정렬한 후 다시 튜플로 변환해야함.
- sorted()함수를 사용하면 튜플도 정렬할 수 있다, 그러나 리스트 자료형을 반환한다.
딕셔너리(Dictionary)
딕셔너리(Dictionary) : 키(key)와 값(value)를 이용해서 자료를 관리한다.
- '{ }'를 이용해서 선언하고, 'key:value'의 형태로 아이템을 정의한다, key값은 중복되면 안된다.
- key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 올 수 있다.
- 단 key에 immutable 값은 올수 있지만 mutable 값은 올 수 없다.
- 딕셔너리는 key를 이용해 value를 조회한다.
- get(key)를 이용해서도 value를 조회할 수 있다, get()은 key가 없어도 에러가 발생하지않고 None을 반환한다.
students = {'s1':'홍길동', 's2':'박찬호', 's3':'이용규','s4':'박승철'}
students['s1']
students.get('s6')
output : None
- 딕셔너리 추가 : [key] = value 형태로 아이템 추가가능, 추가하려는 키가 이미 존재하면 value값이 변경됨
myInfo = {}
myInfo['이름'] = '박경진'
-
keys()와 values() : 전체 키(key)와 값(value)를 조회할 수 있다.
-
items() : key와 value가 튜플형태로 저장하여 반환
-
pop()과 key를 이용한 item 삭제
-
del과 key를 이용한 item 삭제
memInfo = {'이름':'홍길동', '메일':'[email protected]'}
memInfo.pop('이름')
del memInfo['메일']
- in, not in : key의 존재 유/무를 판단 한다.
- len() : 아이템의 개수를 알 수 있다. (key의 개수)
- .clear() : 모든 아이템을 삭제 한다.
Author And Source
이 문제에 관하여(파이썬 자료형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@varieyty_/파이썬-자료형저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)