자료구조

TaeHwi Kang·2022년 9월 30일
0

1. 자료구조

1) 자료구조란
ㆍ자료구조 : 컨테이너 자료형의 데이터 구조
ㆍ컨테이너 자료형 : 여러개의 데이터가 묶여있는 자료형

2) 파이썬의 대표적인 컨테이너 자료형

ㆍ리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set)

List  -> number = [1, 2, 3, 4, 5]
Tuple -> number = (1, 2, 3, 4, 5)
DIc -> number = {'one' : 1, 'two': 2, 'three' : 3, 'four' : 4, 'five':5 }
Set -> number = {1, 2, 3, 4, 5}

2. 리스트(List)

1) 리스트란

ㆍ배열과 같이 여러 개의 데이터를 나열한 자료구조
ㆍ‘[ ]’를 이용해서 선언하고, 데이터 구분은 ‘,’를 이용한다.
ㆍ숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
ㆍ리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다
ㆍ리스트 아이템은 인덱스를 이용해서 조회 가능하다.
ㆍlen()을 이용하여 길이를 구할수 있으며 for문, while문을 같이 사용하여 아이템을 구할수 있다.

인덱스 : 아이템에 자동으로 부여되는 번호표
리스트 길이 : 리스트에 저장된 아이템 개수

2) 리스트에 사용되는 기능들

① enumerate()
ㆍenumerate() 함수를 이용하면 아이템을 열거할 수 있다
ㆍenumerate()는 문자열에도 적용할 수 있다

for i in range(len(numbers)):
    print(i, numbers[i])

for idx, number in enumerate(numbers):
    print(idx, number)

② append()
ㆍappend() 인덱스 마지막에 아이템 추가

alpabet.append('z')

③ insert()
ㆍinsert()특정 위치에 아이템 추가

 alpabet.insert(1, 'b')

④ pop()
ㆍpop() 마지막 인덱스에 해당하는 아이템 삭제
ㆍpop(n) -> n 인덱스에 해당하는 아이템 삭제

alpabet.pop()

⑤ remove()
ㆍremove() 특정 아이템 삭제
ㆍremove()는 한개의 아이템만 삭제가능, 2개이상의 데이터를 삭제시킬려면 whil문을 사용하자

alpabet.remove('a')

⑥ extend()
ㆍextend() 함수를 이용하면 리스트에 또 다른 리스트를 연결(확장)할 수 있다
ㆍ덧셈 연산자를 이용해서 리스트를 연결할 수도 있다

⑦ sort()
ㆍsort() 함수를 이용하면 아이템을 정렬할 수 있다

오름차순 -> sort()
내림차순 -> sort(reverse=True)

⑧ reverse()
ㆍreverse() 함수를 이용하면 아이템을 순서를 뒤집을 수 있다

⑨ 슬라이싱
ㆍ리스트슬라이싱 : [n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다
ㆍ문자열 슬라이싱 : [n:m]을 이용하면 문자열도 슬라이싱이 가능하다.
ㆍ슬라이싱을 이용해서 아이템을 변경할 수 있다
ㆍslice() 함수를 이용해서 아이템을 슬라이싱할 수 있다

⑩ 리스트 곱셈 연산
ㆍ리스트를 곱셈 연산하면 아이템이 반복된다

⑪ index()
ㆍindex(item) 함수를 item의 인덱스를 알아낼 수 있다.

⑫ count()
ㆍcount() 함수를 이용하면 특정 아이템의 개수를 알아낼 수 있다

⑬ del 키워드
ㆍdel 키워드를 이용하면 특정 아이템을 삭제할 수 있다

3. 튜플(Tuple)

1) 튜플이란

ㆍ리스트(List)와 비슷하지만 아이템 변경이 불가하다
ㆍ‘()’를 이용해서 선언하고, 데이터 구분은 ‘,’를 이용한다.
ㆍ튜플도 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표(인덱스)가 있다
ㆍ튜플 아이템은 인덱스를 이용해서 조회 가능하다

2) 튜플에 사용되는 기능들

① in/ not in 키워드
ㆍin, not in 키워드를 이용하면 아이템의 존재 유/무를 알 수 있다
ㆍin, not in 키워드는 문자열에서도 사용 가능하다

'a' in alpabet -> 알파벳 리스트 또는 튜플 안에 'a'가 있으면 True

② len()
ㆍlen()과 반복문을 이용하면 튜플의 아이템 조회가 가능하다.

③ 튜플 결합
ㆍ덧셈연산자로 두 개의 튜플을 결합할 수 있다
ㆍ리스트에서 사용할 수 있는 extend()함수를 튜플에서는 사용할 수 없다

④ 슬라이싱
ㆍ리스트와 마찬가지로 [n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다
ㆍ슬라이싱할 때 단계를 설정할 수 있다
ㆍ튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.

⑤ slice()
ㆍslice()함수를 이용해서 아이템을 슬라이싱할 수 있다

⑥리스트와 튜플은 자료형 변환이 가능하다

number = tuple(number)
number = list(number)

⑦ 튜플의 정렬
ㆍ튜플은 수정이 불가하기 때문에 리스트로 변환 후 정렬하자

list() -> sort() -> tuple()

ㆍsorted() 함수를 이용하면 튜플도 정렬할 수 있다

sorted()는 리스트 자료형을 반환한다.

3) 리스트와 튜플의 차이점

ㆍ튜플은 리스트와 달리 아이템 추가, 변경, 삭제가 불가하다.
ㆍ튜플은 선언 시 괄호 생략이 가능하다.

4. 딕셔너리(Dictionary)

1)딕셔너리란

ㆍ키(key)와 값(value)를 이용해서 자료를 관리한다
ㆍ‘{ }’를 이용해서 선언하고, ’키:값’의 형태로 아이템을 정의한다.
ㆍ딕셔너리는 키(key)를 이용해서 값(value)을 조회한다.
ㆍ존재하지 않는 키를 이용한 조회 시 에러(error) 발생한다.

2) 딕션너리에 사용되는 기능들

① get()
ㆍget(key)를 이용해서 값(value)을 조회 할 수 있다
ㆍget()은 key가 없어도 에러가 발생하지 않는다.

② 딕셔너리 추가/수정
ㆍ‘딕셔너리이름[키(key)] = 값(value)’ 형태로 아이템을 추가한다.
ㆍ추가 하려는 키가 이미 있다면 기존 값이 변경된다

③ keys()와 values()
ㆍ전체 키(key)와 값(value)를 조회할 수 있다.

numKey = numbers.keys()
numVelue = numbers.velues()

④ del 키워드
ㆍdel과 key를 이용한 item 삭제

⑤ pop()
ㆍpop()와 key를 이용한 item 삭제

⑥ in, not in 키워드
ㆍ키(key) 존재 유/무 판단 한다.

⑦ len()
ㆍ딕셔너리 길이(아이템 개수) 를 알 수 있다.

⑧ clear()
ㆍ모든 아이템을 삭제 한다.

numbers.clear()
profile
스터디 노트

0개의 댓글