프로그래밍/Python

[Python - 04 ] list와 tuple

나무늘보Programmer 2024. 4. 1. 18:00

List

  • 시퀀스 자료형
  • 원소들이 연속적으로 저장되는 형태의 자료형
  • 리스트는 함수로 사용이 가능
    리스트 = list() //빈 리스트 생성
  • 리스트는 다차원으로 사용할 수 있음

만드는 방법

  • 대괄호로 묶어주고 ‘,’(콤마)로 값들을 구분
    리스트 = [값1, 값2, ....]

range란?

  • 연속된 숫자를 생산하는 기능
  • range(시작, 끝)를 통해 시작부터 끝-1까지의 수를 반환해 준다
  • range(시작, 끝, 증가)를 통해 시작부터 끝-1까지의 수를 반환해 준다
  • 리스트와의 사용 예시
    리스트 = list(range(0,10))
     
  • 리스트 = list(range(0,10,-1))

리스트를 이용해서 변수 넣기

변수1, 변수2, 변수3 = [값1, 값2, 값3] # 값1은 변수1로 값2는 변수2로 값3은 변수3으로 할당 됨

슬라이싱

  • 리스트의 원하는 값들을 가져올 수 있는 방법(인덱스 번호를 활용해서)
  • 시퀀스 자료형 슬라이싱 하는 방법과 동일

 

리스트 내 값 변경하기

넣기

  • 리스트. insert(’ 값’, ‘원하는 인덱스 번호’)

바꾸기

  • 리스트[’ 원하는 인덱스 변호’] = ‘값’

지우기

  • del 리스트[’원하는 인덱스 번호’]

문자열도 될까?

  • 문자열은 같은 시퀀스여도 리스트처럼 넣고, 바꾸고, 지우기를 할 수 없다.

Tuple

튜플이란?

  • 리스트처럼 요소를 일렬로 저장하지만 안에 저장된 요소를 변경, 추가, 삭제할 수 없음
  • 값을 추가, 변경, 삭제 할 수 없기 때문에 사용하지 못하는 메서드가 많음

튜플 생성 방법

  • tuple = 값, 값
    • 튜플은 언팩킹된 값으로 넣을 수 있음
  • tuple = (값, 값)

하나의 값만 있는 튜플 만드는 방법

  • tuple = (값,)
  • 쉼표가 없으면 자료형이 튜플이 아닌 값의 해당하는 자료형으로 들어가게 됨

 

튜플을 쓰는 이유

  1. 3GO(변경, 수정, 삭제)가 불가능함
    • 3GO 되면 안 되는 변수를 건드는 경우를 건드는 것을 방지할 수 있음
    • 중요한 데이터를 넣어서 보안적으로 관리하기 좋음
  2. list가 tuple보다 무거움
    1. 같은 내용을 처리해도 list가 성능이 떨어질 수 있음
    2. 파이썬은 동적 배열을 지원하기 때문에 list가 무거움
      • 메모리 영역이 모자라면 추가 할당을 함(동적으로) 이때 메모리를 더블링으로 할당함(4 → 8 → 16 ….)
  3. 리스트는 가변이고 튜플은 불변임
    1. 값이 고정되어야 하거나 크기가 작을 경우 튜플을 권장함

리스트와 튜플의 공통점

  1. 길이를 구할 수 있음
  2. 곱하기 연산으로 요소를 복사할 수 있음
  3. 요소끼리 더할 수 있음
  4. 인덱싱이 가능함
  5. 요소의 개수(값의 개수)를 구할 수 있음
  6. 슬라이싱이 가능함