[Python] 리스트(List)

someng·2022년 7월 20일
0

Python

목록 보기
2/11

리스트(List)

: 순서대로 저장하는 시퀀스. 변경 가능한 목록(Mutable List)

📌 리스트의 활용 방법

  • 리스트 선언
a = list(a)

a = []
  • 인덱스를 지정해 요소 추가
# 3번째 인덱스에 5를 삽입
a.insert(3,5)
  • 슬라이싱
#인덱스 1,2,3의 값
a[1:4]

#인덱스 1,3의 값 (세 번째 파라미터: 단계)
a[1:4:2]
  • 요소 삭제
    1. 인덱스로 삭제하기
>>> a
[1, 2, 3, 5, 4, '안녕', True]
>> del a[1]
>>> a
[1, 3, 5, 4, '안녕', True]

2. 값으로 삭제하기

>>> a
[1, 3, 5, 4, '안녕', True]
>>> a.remove(3)
>>> a
[1, 5, 4, '안녕', True]

📌 리스트의 주요 연산 시간 복잡도

  • len(a): O(1)
  • a[i]: O(1)
  • a[i:j]: O(k)
    i부터 j까지 슬라이스의 길이만큼인 k개의 요소를 가져온다.
  • elem in a: O(n)
  • a.count(elem): O(n)
    elem 요소의 개수를 리턴한다.
  • a.index(elem): O(n)
    elem 요소의 인덱스를 리턴한다.
  • a.append(elem): O(1)
    리스트 마지막에 elem 요소를 추가한다.
  • a.pop(): O(1)
    리스트 마지막 요소를 추출한다. Stack의 연산이다.
  • a.pop(0): O(n)
    리스트 첫번째 요소를 추출한다. Queue의 연산이다.
    큐의 연산을 주로 사용하는 경우, 리스트보다는 O(1)에 가능한 데크(deque)를 권장한다.
  • del a[i]: O(n)
    i에 따라 다르다. 최악의 경우 O(n)이다.
  • a.sort(): O(nlogn)
    정렬한다. 팀소트(Timsort)를 사용하며, 최선의 경우 O(n)에도 실행될 수 있다.
  • min(a), max(a): O(n)
  • a.reverse(): O(n)

출처

⌜파이썬 알고리즘 인터뷰⌟ 5장_리스트, 딕셔너리

profile
👩🏻‍💻 iOS Developer

0개의 댓글