bestwish
Hong's Tistory
bestwish
전체 방문자
오늘
어제
  • 분류 전체보기 (32)
    • DevOps (21)
      • Django (15)
      • TIL (2)
      • Python (2)
      • Git (0)
      • Docker (1)
      • Infra (1)
    • Algorithm (3)
      • 백준문제 (3)
      • 이론 (0)
    • CS (6)
      • Data Structure (6)

인기 글

최근 글

hELLO · Designed By 정상우.
bestwish
CS/Data Structure

선형 배열(Linear Array)

CS/Data Structure

선형 배열(Linear Array)

2022. 8. 11. 22:31

선형 배열(Linear Arrays)

선형 배열은 데이터들이 선처럼 일렬로 늘어선 형태를 말한다. 보통 프로그래밍에서 배열(array) 라고 하면 같은 종류의 데이터가 줄지어 늘어서 있는 것을 말하는데, Python에서는 서로 다른 종류의 데이터 또한 줄세울 수 있는 list 라는 데이터형이 있다. 

 

Python 리스트에 활용할 수 있는 연산들

리스트의 인덱싱

파이썬의 리스트의 시작은 0부터이다.

리스트의 순서대로 요소를 출력할 수 있고, 또 -를 붙여 뒤에부터 요소를 출력할 수 있다.

L = ['a', 'b', 'c']
print(L[0]) # a
print(L[-2]) # b

 

리스트의 슬라이싱

문자열과 같이 리스트도 슬라이싱 기법을 쓸 수 있다.

리스트명[a:b]를 하게되면 a이상 b미만을 출력한다.

리스트명[:b]를 하게되면 처음부터 b미만을 출력한다.

리스트명[b:]를 하게되면 b이상부터 끝까지 출력하게 된다.

L = ['a', 'b', 'c', 'd']
print(L[0:2]) # ['a', 'b']
print(L[:2]) # ['a', 'b']
print(L[2:]) # ['c', 'd']

 

리스트 연산

리스트 마지막에 요소 추가와 삭제

리스트의 길이와 상관없이 빠르게 요소를 추가하고, 삭제할 수 있는 함수다.

append()는 리스트의 맨 뒤에 추가해주고, pop()은 맨뒤의 요소를 제거하고 값을 반환한다.

pop 함수에 값을 주게 된다면 그 값에 해당하는 리스트 인덱스의 요소가 삭제된다.

L = ['a', 'b', 'c', 'd']
L.append('NEW')
print(L) # ['a', 'b', 'c', 'd', 'NEW']
L.pop()
print(L) # ['a', 'b', 'c', 'd']

 

요소 삽입과 삭제

리스트의 크기가 크면 오래 걸리는 함수들이다.

insert(index, value)는 index의 위치에 value를 삽입한다.

이때 리스트의 전체 크기가 증가하며(5-> 6), 삽입했던 위치보다 뒤에 있는 요소들은 맨 뒤의 요소부터 하나씩 밀려나게 되면서 시간이 오래걸리게 된다.

L = [20, 23, 36, 41, 50]
L.insert(2, 33) # [20, 23, 33, 36, 41, 50]

 

del()도 삭제하려는 리스트와 요소를 함께 넣어주면 제거가된다.

insert()와 같이 del() 또한 시간이 오래걸리는 함수이다.

제거하려는 리스트의 요소보다 뒤에 있는 것들을 한칸씩 당기게 되어 제거하여 시간이 오래걸린다.

 

L = [20, 23, 36, 41, 50]
del(L[2]) # [20, 23, 41, 50]

 

다양한 리스트 관련 함수들

리스트 뒤집기

reverse()함수는 리스트의 요소들을 거꾸로 뒤집어준다.

L = [20, 23, 36, 41, 50]
L.reverse() # [50, 41, 36, 23, 20]

리스트 위치 반환

index(x) 함수는 리스트에 값이 있으면 x의 인덱스 값을 알려준다.

값이 없을 시에는 ValueError가 나타난다.

L = [20, 23, 36, 41, 50]
L.index(23) # 1

 

리스트 요소 제거

remove(x)는 리스트에서 첫번째로 나오는 x를 삭제한다.

L = [36, 20, 23, 36, 41, 50]
L.remove(36) # [20, 23, 36, 41, 50]

 

리스트에 포함된 요소 x의 개수 세기

count(x)는 리스트 안에 x가 몇개 있는지 조사하여 그 개수를 돌려주는 함수이다.

L = [20, 30, 20, 40, 12, 20]
a.count(20) # 3

 

리스트 확장

extend(x)에서 x에는 리스트만 들어갈 수 있으며, 원래의 리스트 뒤에  x의 리스트를 추가한다.

 

L = [20, 30, 20, 40, 12, 20]
L.extend([10, 5]) # [20, 30, 20, 40, 12, 20, 10, 5]

 

리스트 정렬

sort()와 sorted() 함수 2개가 있다. 

sort()는 기존 리스트 자체를 순서대로 바꾼다.

sorted()는 기존 리스트는 변화하지않고 정렬된 새로운 리스트를 반환한다.

두함수 모두 괄호 안에 reverse=True를 넣으면 거꾸로 출력이 가능하다.

L = [10, 1, 2, 5, 7]
L2 = sorted(L) # [1, 2, 5, 7, 10]
print(L) # [10, 1, 2, 5, 7]
L.sort()
print(L) # [1, 2, 5, 7, 10]

'CS > Data Structure' 카테고리의 다른 글

환형 큐(Circular Queues)  (0) 2022.09.18
큐 (Queues)  (0) 2022.09.11
스택 (Stacks)  (0) 2022.08.31
양방향 연결 리스트(Doubly Linked Lists)  (0) 2022.08.30
연결 리스트 (Linked Lists)  (0) 2022.08.21
  • 선형 배열(Linear Arrays)
  • Python 리스트에 활용할 수 있는 연산들
  • 리스트의 인덱싱
  • 리스트의 슬라이싱
  • 리스트 연산
  • 리스트 마지막에 요소 추가와 삭제
  • 요소 삽입과 삭제
  • 다양한 리스트 관련 함수들
  • 리스트 뒤집기
  • 리스트 위치 반환
  • 리스트 요소 제거
  • 리스트에 포함된 요소 x의 개수 세기
  • 리스트 확장
  • 리스트 정렬
'CS/Data Structure' 카테고리의 다른 글
  • 큐 (Queues)
  • 스택 (Stacks)
  • 양방향 연결 리스트(Doubly Linked Lists)
  • 연결 리스트 (Linked Lists)
bestwish
bestwish

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.