Python 참조/Python 책정리

Chapter9 리스트 자료형[중요]

Snowboarder 2022. 5. 3. 02:16
  • 리스트 자료형은 여러 개의 데이터를 하나의 이름 아래에 저장할 수 있어서 많은 데이터를 처리하기에 적합합니다. 리스트에 대해서 어떤 연산을 할 수 있는지와 리스트 메소드를 모두 학습하기 바랍니다. 특히 for 반복문을 이용하여 리스트를 효율적으로 이용할 수 있도록 연습합시다.

1. 리스트 만들기

  • 리스트로 데이터를 묶을 때는 대괄호 기호 [ ] 를 이용하고 콤마로 데이터들을 분리합니다.

빈 리스트 만들기

  1. 빈 대괄호 [ ] 이용하기 >>> A = []
  2. list() 함수 이용하기 >>> B= list()

다른 자료형의 데이터를 리스트로 변환하기

  • list()함수는 두가지 목적으로 사용한다.
    1. 빈 리스트를 만들 때
    2. 리스트가 아닌 객체를 리스트로 변환하려고 할 때
  • 리스트 ←문자열 : 문자 하나씩 뗴어서 저장합니다.
  • 리스트 ←사전 : # 키 만 리스트에 저장합니다.
  • 리스트 ← reversed() : reversed() 함수의 결과 값은 itrerable 합니다.
  • 리스트 ← range() : range() 함수의 결과 값은 itrerable 합니다.

두 리스트가 같은지 비교하기

  • 같은 위치에 같은 데이터가 있어야 두 리스트가 같다고 판단합니다.

2. 리스트 인덱싱, 슬라이싱

3. 리스트 mutable 객체입니다.

  • 즉 리스트 객체를 만든 다음에 리스트에 데이터를 추가,삭제, 수정이 가능하다는 뜻입니다.

인덱싱을 이용하여 리스트 수정하기

슬라이싱을 이용하여 리스트 수정하기

  • 일정 범위를 수정하고자 할 때 유용합니다.
  • 슬라이싱 범위에 iterable 자료형을 대입해야 합니다.
    • 문자열에 있는 문자가 하나씩 분리되어 저장됨

4. 리스트에 +, * , in, not in, del 연산자 사용하기

  • 리스트에 +, * , in, not in 은 문자열과 같습니다.

5. 리스트에 함수 적용하기- len(), max(), min, sum(), sorted(), reversed()

  • reversed() 함수의 결과에 list() 함수를 한번 더 적용해야 리스트 결과를 볼 수 있습니다.
    • L[::-1]은 리스트 L을 거꾸로 만들어 줍니다.
    • 가운데 인덱스 : len(L)//2+1

6. 리스트 메소드

  • dir(list)는 리스트에 적용할 수 있는 메소드 목록을 보여줍니다.

리스트에 데이터 추가하기 - append(), insert()

  • append() 메소드는 데이터를 리스트 맨 끝에 추가해주고 반환값은 없습니다.
  • insert(i, x)는 데이터를 원하는 위치에 삽입해준다.

리스트와 iterable 자료형 연결하기 - extend()

  • extend()는 리스트에 다른 iterable 객체를 연결해 주는 메소드입니다.
    • 연산자는 리스트끼리만 연결합니다.
      • extend()메소드는 리스트에 iterable 자료형 어느 것이든 연결합니다.
      • 리스트.extend( iterable 자료형 )

리스트에서 데이터 삭제하기 - pop(), remove(), clear()

  • pop()메소드 :리스트에서 하나의 데이터를 삭제하고, 삭제한 데이터를 반환하는 메소드입니다.
    • 인수 X : 리스트에 있는 마지막 데이터를 삭제하고 반환합니다. 빈 리스트에는 index Error
    • 인수 1개: 인덱스 i에 있는 데이터를 삭제하고 반환합니다. 빈 리스트에는 index Error
  • remove(x): remove() 메소드는 괄호 안에 삭제하고자 하는 데이터를 넣어합니다.
    • 리스트에 x가 여러 개 있으면 맨 앞에 있는 원소만 삭제해줍니다.
    • 없는 원소를 삭제하려고 하면 'ValueError'가 발생합니다.
  • clear(): 모든 데이터를 삭제하고 빈 리스트로 만들어 주는 메소드입니다.

리스트 복사하기 - copy()

  • copy(): 똑같은 복사본을 만드는 메소드입니다.
  • 복사할 수 있는 방법 또 있다.
    • [:] , [::} 이용

리스트에 있는 데이터 개수 세기 - count()

  • count(x): 리스트에 데이터 x 가 몇 개 인지를 반환해 주는 메소드입니다.

리스트에 있는 데이터 위치 찾기 - index()

  • 리스트에서 x의 인덱스를 알려 주는 메소드입니다.

리스트 역순으로 만들기 - reverse()

리스트 정렬하기 - sort()

  • 인수없이 사용하는 경우: 오름차순으로 정렬시켜 줍니다.
  • 인수가 있는 경우:
    • 내림차순 인수로 'reverse = True'를 넣어 주어야 합니다.
  • 아스키 코드를 기준으로 정렬해 줍니다.
  • 'key= 함수명' ___ 자리에는 함수를 넣습니다.
  • M.sort(key=len) len함수를 적용한 결과로 정렬합니다.

7. 리스트 안에 리스트 구조

얕은 복사와 깊은 복사

  • '='을 이용하면 복사본이 생기지 않아서 복사가 이루어지지 않기 떄문에 copy()메소드를 이용해야한다.
  • 얕은 복사
  • 깊은 복사 ( deepcopy() )

8. 리스트를 이용한 언패킹 (Unpacking)

  • 리스트를 이용하면 좀더 간단하게 여러 변수에 값을 할당할 수 있다.
  • '=' 양변에 개수가 같아야 합니다. 그렇지 않으며 ValueError 가 발생
  • 변수에 여러 개의 값을 할당하고자 할 때
    • *기호를 이용해서 값들을 할당해 줄 수 있습니다.
      • 기호 자리에는 0개 이상 여러 개의 데이터가 리스트로 저장 됩니다.

9. 리스트 안에 for 반복문 사용하기(List Comprehension)

10. 정리

  • 리스트는 mutable자료형이라서 저장된 데이터를 언제든지 수정할 수 있는 장점이있습니다.

'Python 참조 > Python 책정리' 카테고리의 다른 글

Chapter 11 집합 자료형  (0) 2022.05.03
Chapter10 튜플  (0) 2022.05.03
Chapter8 for 반복문[중요]  (0) 2022.05.03
Chapter7 while 반복문[중요]  (0) 2022.05.03
Chapter 6 if 조건문 [중요]  (0) 2022.05.02