1. 기본
L1 = list()
L2 = []
# 빠른거
L1.append(value) #리스트 끝에 value(이하 'v') 추가
L1.pop() #리스트 끝의 v 뽑기
# 느린거
L1.insert(index, v) #리스트의 해당하는 index(이하 'i')에 v 추가, 뒷 v들의 i += 1.
L1.del(i) #리스트의 해당하는 i의 v 삭제, 뒷 v들의 i -= 1.
# 추가 다른 연산(?)
L1.index(v) #리스트에서 해당 v의 i를 반환
2. 정렬
L1 = [3, 2, 1]
L1.sort() #L1을 [1, 2, 3]으로 정렬
L2 = sorted(L1) #L1을 정렬한 L2라는 새로운 리스트(new list)를 생성.
L1 = sorted(L1) #도 된다.
3. 탐색
선형 탐색(linear search) | 순차 탐색(sequential search) : 순서대로 탐색(처음부터 끝까지)
이진 탐색(binary search) : 이미 정렬된 리스트의 가운데 값으로 논리연산하여 반을 버리고, 남은 반의 가운데 값으로... 반복 (logN번 반복?)
L = list()
# 선형 탐색
if x in L:
return L.index(x)
else:
raise KeyError
# 이진 탐색
lower = 0
upper = len(L)-1
while lower <= upper:
mid = (lower+upper)//2
if L[mid] == x:
return mid
elif L[mid] > x:
upper = mid-1
elif L[mid] < x:
lower = mid+1
return KeyError
한줄평
이때까진 쉬웠다.