7. 리스트(List) 심화
리스트는 []대괄호로 묶어주고, 수정이 가능하다
- (1) 추가하기(append)
- (2) 삽입하기(insert)
- (3) 정렬하기(sort)
- (4) 리스트로 구현하는 자료 구조 (Stack, Queue, pop, popleft)
(1) 추가하기(append)
- list에 속한 append()는 리스트의 맨 마지막에 값을 추가
a = [1,2]
a.append(4)
print(a)
#튜플로 실행할 경우 에러 발생 : append는 list에 속한 함수이기 때문에
# a = (1,2)
# a.append(4)
# print(a)
[1, 2, 4]
(2) 삽입하기(insert)
- list에 속한 insert(index위치,값)는 원하는 위치에 값을 삽입
a = [1,2]
a.insert(0,3)
print(a)
#튜플로 실행할 경우 에러 발생 : insert는 list에 속한 함수이기 때문에
# a = (1,2)
# a.insert(0,3)
# print(a)
[3, 1, 2]
(3) 정렬하기(sort)
- list에 속한 sort()를 사용하여 순서대로 정렬
a = [1,2,20,4,324,5,3]
a.sort()
print(f"오름차순 정렬 : {a}")
a.sort(reverse=True) #reverse=False인 오름차순이 기본값
print(f"내름차순 정렬 : {a}")
#튜플로 실행할 경우 에러 발생 : sort는 list에 속한 함수이기 때문에
# a = (1,2,20,4,324,5,3)
# a.sort()
# print(f"오름차순 정렬 : {a}")
# a.sort(reverse=True) #reverse=False인 오름차순이 기본값
# print(f"내름차순 정렬 : {a}")
오름차순 정렬 : [1, 2, 3, 4, 5, 20, 324]
내름차순 정렬 : [324, 20, 5, 4, 3, 2, 1]
(4) 리스트로 구현하는 자료 구조 (Stack, Queue)
- Stack(스택)
- FILO(First In Last Out 구조)
- 맨 처음 들어간 것은 가장 나중에 나오는 구조
- Queue (큐)
- FIFO(First In First Out 구조)
- 맨 처음 들어간 것이 맨 처음으로 나오는 구조 (놀이동산 줄: 먼저 줄 선 사람이 먼저 탑승)
#Stack(스택)구조 구현
#리스트의 append()와 pop을 활용하면 스택 구조를 구현할 수 있다.
a=[]
print(a)
a.append(1) #1추가
print(a)
a.append(2) #2추가
print(a)
a.append(3) #3추가
print(a)
a.pop() #3제외
print(a)
a.pop() #2제외
print(a)
a.pop() #1제외
print(a)
[]
[1]
[1, 2]
[1, 2, 3]
[1, 2]
[1]
[]
#Queue(큐)구조 구현
#리스트의 insert()와 pop()로 큐 형태를 구현할 수는 있지만,
#스택과 달리 느리게 동작해서 파이썬에서 준비해둔 모듈 사용해서 구현
#collections.deque의 append()와 popleft()를 사용
from collections import deque
q = deque([1,2,3])
print(q)
print("-"*30)
q = deque([])
print(q)
q.append(1) #1추가
print(q)
q.append(2) #2추가
print(q)
q.append(3) #3추가
print(q)
q.popleft() #1제외
print(q)
q.popleft() #2제외
print(q)
q.popleft() #3제외
print(q)
deque([1, 2, 3])
------------------------------
deque([])
deque([1])
deque([1, 2])
deque([1, 2, 3])
deque([2, 3])
deque([3])
deque([])
'💻 Python > 🔎기초 Python' 카테고리의 다른 글
8. Dictionary와 Set 데이터 타입 (0) | 2022.08.08 |
---|---|
6. 함수 가지고 놀기 (온도 변환 함수, 여러개 인풋 아웃풋, 기본값 설정) (0) | 2022.08.08 |
5. 문자열 가지고 놀기 (합치기, 반복, 바꾸기, 나누기, 공백 지우기, 포맷팅) (0) | 2022.08.08 |
4. 함수란 무엇인가 (내장 함수, 사용자 정의 함수) (0) | 2022.08.07 |
3. 파이썬 프로그래밍의 기본 구조(연산자, 조건문, 반복문) (0) | 2022.08.07 |