mutable(변경 가능)과 immutable(변경 불가능)

2024. 10. 2. 23:40·Python
반응형

파이썬에서 리스트(List)는 mutable(변경 가능)하고, 문자열(String)은 immutable(변경 불가능)하다는 의미는 그 데이터 타입이 변경 가능한지, 즉 그 안에 저장된 요소를 직접 수정할 수 있는지와 관련이 있습니다.

1. 리스트 (mutable)

  • mutable(변경 가능)하다는 것은 리스트의 요소를 직접 수정할 수 있다는 뜻입니다. 리스트의 특정 요소를 바꾸거나, 요소를 추가하거나, 삭제할 수 있습니다.

예시:

my_list = [1, 2, 3]
my_list[0] = 10  # 리스트의 첫 번째 요소를 10으로 변경
print(my_list)  # 출력: [10, 2, 3]

my_list.append(4)  # 새로운 요소 추가
print(my_list)  # 출력: [10, 2, 3, 4]

여기서 리스트는 원래 있던 값이 변하고, 새로운 값을 추가하거나 제거할 수 있습니다. 즉, mutable하다는 것은 데이터를 "수정"할 수 있다는 의미입니다.

 

2. 문자열 (immutable)

  • immutable(변경 불가능)하다는 것은 한 번 생성된 문자열을 직접 수정할 수 없다는 뜻입니다. 즉, 문자열의 특정 문자를 바꾸거나, 문자열 중 일부를 삭제하는 것이 불가능합니다. 만약 문자열을 변경하려면, 새로운 문자열을 만들어야 합니다.

예시:

my_string = "hello"
# my_string[0] = 'H'  # 오류 발생: 문자열은 변경할 수 없음
new_string = "H" + my_string[1:]  # 새로운 문자열을 만듦
print(new_string)  # 출력: "Hello"

여기서 my_string[0] = 'H'는 오류를 발생시킵니다. 문자열을 수정하려면 항상 새로운 문자열을 생성하는 방식으로 작업해야 합니다.

요약:

  • mutable (변경 가능): 리스트처럼 한 번 생성된 객체의 내부 값을 변경할 수 있음.
  • immutable (변경 불가능): 문자열처럼 한 번 생성된 객체의 내부 값을 변경할 수 없고, 값을 바꾸려면 새로운 객체를 만들어야 함.

 

파이썬에서의 mutable(변경 가능)과 immutable(변경 불가능) 데이터 타입

Mutable (변경 가능) 데이터 타입:

  1. List (리스트):
    • 예시: [1, 2, 3]
    • 요소를 추가, 삭제, 수정할 수 있음.
  2. Dictionary (딕셔너리):
    • 예시: {'key1': 'value1', 'key2': 'value2'}
    • 키-값 쌍을 추가하거나 삭제하고, 값을 수정할 수 있음.
  3. Set (집합):
    • 예시: {1, 2, 3}
    • 요소를 추가하거나 삭제할 수 있음. 중복된 값을 허용하지 않음.
  4. Bytearray:
    • 예시: bytearray(b"hello")
    • 바이트 배열로, 개별 바이트 값을 변경할 수 있음.

Immutable (변경 불가능) 데이터 타입:

  1. String (문자열):
    • 예시: "hello"
    • 문자열의 개별 문자를 변경할 수 없음.
  2. Tuple (튜플):
    • 예시: (1, 2, 3)
    • 한 번 생성된 튜플은 수정할 수 없음.
  3. frozenset (고정 집합):
    • 예시: frozenset([1, 2, 3])
    • 집합처럼 동작하지만, 요소를 추가하거나 삭제할 수 없음.
  4. Bytes:
    • 예시: b"hello"
    • 바이트 배열의 불변 버전. 변경할 수 없음.
  5. Numbers (숫자형):
    • int, float, complex 등.
    • 예시: 42, 3.14
    • 숫자는 한 번 생성되면 값이 변하지 않음.
반응형
저작자표시 비영리 변경금지 (새창열림)

'Python' 카테고리의 다른 글

파이썬 자료구조  (2) 2024.10.08
파이썬 | functools.wraps  (1) 2022.10.03
파이썬 | Type Hints, 타입 지정하기  (0) 2022.09.24
파이썬 | max, sorted,...의 key사용  (0) 2022.07.14
파이썬 | for 요소 in 리스트  (0) 2022.07.14
'Python' 카테고리의 다른 글
  • 파이썬 자료구조
  • 파이썬 | functools.wraps
  • 파이썬 | Type Hints, 타입 지정하기
  • 파이썬 | max, sorted,...의 key사용
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
mutable(변경 가능)과 immutable(변경 불가능)
상단으로

티스토리툴바