[4강] 파이썬 문법 : 리스트 자료형

윤라이트·2024년 2월 23일
0
post-thumbnail


<이것이 취업을 위한 코딩 테스트다 with 파이썬>
강의를 듣고 정리하는 글입니다.

강의링크 4강. 파이썬 문법 : 리스트 자료형




📌 리스트 자료형

  • 리스트 자료형이란, 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
    • C자바에서의 배열의 기능 및 연결리스트유사한 기능
      • ex. append, remove
      • 일반적인 배열과 비교했을 때 더욱 다양하고 유용한 기능 제공
    • 리스트 대신 배열 or 테이블이라고 부르기도 함.
  • 다른 언어에서 파이썬으로 넘어온 사람들은 리스트의 강력한 점 때문에 파이썬이 엄청 편하다고 함.
  • 즉, 파이썬에서는 배열이 리스트임.



📌 리스트 초기화

  • 초기화 : 대괄호([])
    • ex. number = []
  • 원소 구분 : 쉼표(,)
    • ex. number = [1, 2, 3, 4]
  • 원소 접근 시 괄호에 인덱스 값
    • 0부터 시작.
    • ex. number[3]의 값은 4
  • a = [0] * 10
    - 결과 : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    - [0]을 10번 곱한 것.



📌 리스트의 인덱싱

  • 인덱싱(Indexing)은 인덱스 값을 입력하여 리스트의 원소에 접근함.
    - 음수도 사용 가능
    - 거꾸로 탐색하게 됨.
    - -1부터 차례대로 작아지는 방식으로 접근
    - ex. number = [1, 2, 3, 4]
    - number[-2]의 값은 3임.



📌 리스트의 슬라이싱

  • 슬라이싱(Slicing)은 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때 사용함.
    • 파이썬이 아닌 다른 언어로 하면 별도의 함수를 이용하거나 정의해서 사용해야 함으로 복잡함.
  • 대괄호 안에 콜론(:)을 넣어서 시작, 끝 인덱스 설정
    - 끝 인덱스는 실제 인덱스보다 1 더 크게 해야 함.
    - 파이썬 뿐만 아니라 다른 언어에서도.
    - ex. number = [1, 2, 3, 4]
    - number[1:3]의 값은 [2, 3]임.



📌 리스트 컴프리헨션

  • 리스트 컴프리헨션이란 리스트를 초기화하는 방법 중 하나
    - 대괄호 안에 조건문반복문을 적용하여 리스트를 초기화.


📍 리스트 컴프리헨션 - 반복문

number = [i for i in range(10)]
  • for문을 이용해서 0부터 9까지의 총 10개의 값이 i라는 변수에 차례대로 담기고 i가 리스트에 담김.
    • 대괄호를 먼저 쓰고 for문 쓰고 변수 쓰는 순으로 작성하길 추천
  • 단 한 줄만에 한 번에 초기화 가능!
    - 매우 간결하고 짧게 작성.

📍 리스트 컴프리헨션 - 조건문

number = [i for i in range(10) if i % 2 == 1]
  • 이렇게 하면 0부터 9까지 홀수인 값만 number 리스트에 포함.
number = [i * i for i in range(1, 10)]
  • 1부터 9까지의 수들의 제곱값을 구하여 리스트에 포함.



📌 리스트 컴프리헨션과 일반적인 코드 비교

  • 일반적인 코드와 비교했을 때, 리스트 컴프리헨션을 사용하면 4줄에서 단 한 줄로 초기화가 가능한 것을 볼 수 있음.

    • 굉장히 편함.
  • 2차원 리스트를 초기화할 때 효과적으로 사용할 수 있음.

  • 특히 N X M 크기의 2차원 리스트를 한 번에 초기화 해야할 때 매우 유용함.
    - 많은 코딩 문제에서 문제 상황 자체를 N X M으로 정의하는 상황이 많음.



📌 리스트 컴프리헨션 좋은 예시

📍 좋은 ex.

number = [[0] * m for _ in range(n)]


📌 리스트 컴프리헨션 나쁜 예시

  • array[1][1]의 값만 5로 바꾸도록 했는데 array[1] 전체가 5로 바뀌는 잘못된 결과가 나옴.
  • 내부적인 리스트가 모두 같은 객체로써 인식될 수 있음.

📍 잘못된 ex.

number = [[0] * m] * n
  • 위 코드는 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식됨.
    • 내부적인 리스트는 모두 같은 리스트로써 처리가 되기에 내부 리스트 중 특정 위치에 하나의 값만 바꾼다고 하더라도 모든 리스트에 동일하게 그 변경사항에 적용되기에 예기치 못한 결과가 발생할 수 있음.



📌 언더바는 언제 사용하나?

  • 언더바(_) 는 반복을 수행하되 반복을 위한 변수의 값을 무시할 때 사용함.
sum = 0
for i in range(1, 10) :
sum += i
print(sum)
  • 이 코드는 1부터 9까지의 값을 더해주기 위해 i가 필요함.
  • 하지만 아래와 같은 코드는
for _ in range(5) :
print(”Hello”)
  • i가 내부적으로 필요하지 않다는 것을 언더바를 통해 나타냄.



📌 리스트 관련 기타 메서드

profile
끝까지 가보자9~!!!🔥✨💡

0개의 댓글