CH 08 List

Huisu·2021년 12월 1일
0

Python

목록 보기
8/17
post-thumbnail

List

List

  • list는 여러 개의 data 묶음
  • 각각의 요소는 index로 접근 가능
  • index는 0부터 시작
  • list_name = [] : empty ilst 생성
  • list의 element로는 다양한 자료형이 섞여서 사용될 수도 있음
  • mutable: list는 index마다 요소에 접근하여 요소 값을 바꿀 수 있음

Operation

  • len(L): list L의 길이 반환
  • max(L): list L의 요소 중 최대값 반환
  • min(L): list L의 요소 중 최소값 반환
  • sum(L): list L의 모든 요소를 더한 값 반환
  • sorted(L): list L의 요소를 오름차순으로 정렬해 복사한 또 다른 list 반환
  • L1 + L2: L2의 모든 요소들이 L1 list의 뒤로 추가
  • L1 * k: L1의 모든 element들을 k번 반복하는 list로 변경
  • del L: list L 삭제
  • del L[index]: list L의 index 번째 요소 삭제
  • x in L: list L의 요소 중 x라는 요소가 있는지 없는지 boolean 값 반환

Methods

  • L.append(v): list의 맨 뒤에 v 그대로 삽입
  • L.extend(v): list의 맨 뒤에 v의 item을 삽입
  • L.insert(i, v): list의 i 번째 index에 v 삽입
  • L.clear(): list 비우기
  • L.count(v): v가 list 안에 몇 개 있는지 반환
  • L.index(v): list에 v가 몇 번째 index에 있는지 찾아 index 반환
  • L.index(v, a): list의 [a, ) 번째 요소 중 v가 몇 번째 index에 있는지 찾아 index 반환
  • L.index(v, a, b): list의 [a, b) 요소 중 v가 몇 번째 index에 있는지 찾아 index 반환
  • L.pop(): list의 마지막 item을 반환하고 list에서 해당 item 삭제
  • L.remove(v): list에서 처음으로 등장하는 v 삭제
  • L.reverse(): list의 순서 뒤집기
  • L.sort(): list를 오름차순으로 정렬
  • L.sort(reverse = True): list를 내림차순으로 정렬

Slicing

  • L[:]: list L 전체 선택
  • L[:a]: list L의 index < a 인 요소들만 선택
  • L[a:]: list L의 index > a 인 요소들만 선택
  • L[a:b]: list L의 index가 [a, b) 인 요소들만 선택
  • L[a:b:c]: list L의 index가 [a, b) 인 요소들을 c 간격으로 선택
    • c가 음수일 경우 역방향

Aliasing vs Copying

Aliasing

x = [1, 2, 3, 4, 5]
y = x

y[0] = 0
print(x)
[0, 2, 3, 4, 5]
  • C 언어에서 shallow copy 역할
  • Aliasing된 list 변수의 요소값을 수정하면 원래의 list 값도 수정된다

Copy

x = [1, 2, 3, 4, 5]
y = x[:]

y[0] = 0
print(x)
print(y)
[1, 2, 3, 4, 5]
[0, 2, 3, 4, 5]
  • C 언어에서 deep copy 역할
  • Copy된 list 변수의 요소값을 수정하면 copy list의 값만 수정되고 원래의 list 값은 수정되지 않는다

A List of Lists

  • 중첩 list
  • list의 element가 list인 것
  • list[a][b]: list의 a 번째 list의 b 번째 item
  • index 접근은 Aliasing
life = [["canada", 76], ["mexico", 72], ["korea", 80]]
canada = life[0]
canada[1] = 100

print(canada)
print(life)
["canada", 100]
[["canada", 100], ["mexico", 72], ["korea", 80]]

0개의 댓글