-
파이썬 - list 요소 삭제 / clear, del, remove, pop파이썬 정리 2024. 4. 3. 15:14
del
a = [2,3,4,5,6,7,8,27,59,81,100] del a[0] # 위치 번호 print(a) [3,4,5,6,7,8,27,59,81,100]
단, 리스트 범위를 초과한, 예를들어 a 기준 11번의 숫자를 제거하라고 한다면
Index error 가 발생한다.
위치번호 사용 특성 상, slice 가능하다 [0:2] 혹은 [0:9:3]
clear
a=[2,3,4,5,6,7,8,27,59,81,100] a.clear() print(a) []
remove() : 입력한 값을 검색하여, 첫번째 검색 결과를 삭제한다.
a=[2,3,4,5,6,7,8,27,59,81,100] a.remove(7) print(a) [2,3,4,5,6,8,27,59,81,100]
여러개의 같은 값이 존재 할 경우 첫번재 값을
존재하지 않는 경우 valueError가 발생한다.
pop() : [기본] 맨 뒤의 값을 삭제
[인자] 특정 위치의 값을 삭제
(stack 의 pop,push 개념과 유사)
a=[2,3,4,5,6,7,8,27,59,81,100] print(a.pop()) #-> 100 print(a.pop(0)) #->2 print(a.pop(-1)) #->100 // 81(상위 코드 누적 시)
del과 유사하게 범위 외 Index 지정 시
IndexError 가 발생한다.
pop() method는 기본적 원리 상 중간 값을 지정할 경우 시간 복잡도가 O(n)이라고 한다.
더보기[Python] 파이썬 자료형 및 연산자의 시간 복잡도(Big-O) 총 정리 (tistory.com)
시간 복잡도
계산 복잡도 : 문제를 해결하는데 걸리는 시간과 입력의 함수 관계
컴퓨터 과학 : 입력을 나타내는 문자열 길이의 함수.
작동하는 알고리즘을 취해 시간을 정량화 하는 것.
(위키백과 펌)
기본 산술 연산은 O(1)
길이가 n인 리스트를 처음부터 끝까지 요소를 하나씩 출럭(iter)
print(n) 함수를 n번 사용하므로 O(1)*n = O(n)
이중 for 문은 O(n²), 삼중 for문은 O(n³)의 방식으로 증대
1 : 일정한 실행시간을 갖음, 변수 선언등...log N : 주로 큰 크기의 문제를 일정한 크기를 갖는 작은 문제로 쪼개는 경우 발생ex) 효율좋은 검색 알고리즘N : 입력 자료의 수에 따라 선형적인 실행 시간이 거릴는 경우N log N : 주로 큰 크기의 문제를 쪼개고(log N) 다시 하나로 모으는 경우 발생(N)ex) 효율좋은 정렬 알고리즘N^2 : 이중 루프N^3 : 삼중 루프출처: https://debugdaldal.tistory.com/158 [달달한 디버깅:티스토리]
list 자료형은 삽입, 제거, 탐색, 포함 여부 확인 모두 O(n) 시간복잡도를 가짐.
set 과 dict 자료형은 삽입, 제거, 탐색, 포함 여부 확인 연산에 O(1) 시간복잡도를 가짐.
탐색과 확인을 위해서라면 set 과 dict를,
순서와 index 접근이 필요하다면 list자료형 사용이 적절 할 수 있음
[Python] 백준 1920번 수 찾기 - 두가지 풀이:이분탐색과 자료형 (tistory.com)
ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
+
list comprehension
comprehension - 이해, 포용, 포함, 압축 등
nums = list(range(50)) n_nums = [i for i in num if i%7 == 0] print(n_num) [0,7,14,21,28,35,42,49]
파이썬(python) #23_ 컴프리헨션(Comprehension) 이란? (tistory.com)
참고
'파이썬 정리' 카테고리의 다른 글
파이썬 - 문자열 입력값 및 연산 (0) 2024.04.22 파이썬 - 행렬(차원) / isinstance () (1) 2024.04.19 파이썬 - TRY-EXCEPT (0) 2024.04.19 파이썬 - 숫자 뒤집은 배열 (0) 2024.04.08 파이썬 - iterable (0) 2024.04.02