에듀테크 프로젝트 대시보드
리스트 (list)
순서가 있고 변경 가능한(mutable) 파이썬의 기본 컨테이너. 어떤 타입이든 섞어 담을 수 있습니다.
a = [1, 2, 3]
b = []
c = list("abc") # => ['a', 'b', 'c']
d = list(range(5)) # => [0, 1, 2, 3, 4]
e = [0] * 5 # => [0, 0, 0, 0, 0]
# 2차원은 곱셈 금지 (행이 공유됨!)
grid = [[0] * 3 for _ in range(3)] # 올바른 방법nums = [10, 20, 30, 40, 50]
nums[0] # => 10
nums[-1] # => 50
nums[1:3] # => [20, 30]
nums[::-1] # => [50, 40, 30, 20, 10]
nums[1:3] = [99] # 슬라이스 대입 => [10, 99, 40, 50]
nums[:] = [1, 2] # 내용 전체 교체 (같은 객체 유지)| 메서드 | 동작 | 반환 |
|---|---|---|
.append(x) | 끝에 하나 추가 | None |
.extend(iter) | 여러 개 이어붙임 | None |
.insert(i, x) | i 위치에 삽입 | None |
.pop() / .pop(i) | 제거하고 그 값 반환 | 요소 |
.remove(x) | 첫 번째 x 삭제 (없으면 ValueError) | None |
.clear() | 전부 삭제 | None |
del lst[i] | 인덱스로 삭제 | — |
nums = nums.append(4) → nums 가 None 이 됨. 그냥 nums.append(4)sorted(nums), 제자리 정렬은 nums.sort()nums = [3, 1, 2]
nums.sort() # 제자리, => [1, 2, 3]
nums.sort(reverse=True) # => [3, 2, 1]
nums.sort(key=abs) # 기준 함수
words = ["banana", "kiwi", "fig"]
sorted(words, key=len) # => ['fig', 'kiwi', 'banana']
nums.reverse() # 순서만 뒤집기 (정렬 아님)
nums.index(2) # 값의 위치 (없으면 ValueError)
nums.count(2) # 개수
2 in nums # 멤버십a = [[1], [2]]
b = a # 별칭 — 같은 리스트
c = a.copy() # 얕은 복사 (a[:] , list(a) 도 동일)
import copy
d = copy.deepcopy(a) # 깊은 복사 — 중첩까지
a.append([3])
# b 도 [3] 이 보임, c/d 는 안 보임
c[0].append(99) # a[0] 도 바뀜! (얕은 복사라 내부 리스트는 공유)nums = [1, 2, 3, 4, 5]
total = sum(nums)
biggest = max(nums)
evens = [n for n in nums if n % 2 == 0]
# 스택
stack = []
stack.append(1); stack.pop()
# 큐는 list 대신 collections.deque (popleft O(1))
from collections import deque
q = deque([1, 2, 3]); q.popleft()