반응형
파이썬에서 리스트(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 (변경 가능) 데이터 타입:
- List (리스트):
- 예시: [1, 2, 3]
- 요소를 추가, 삭제, 수정할 수 있음.
- Dictionary (딕셔너리):
- 예시: {'key1': 'value1', 'key2': 'value2'}
- 키-값 쌍을 추가하거나 삭제하고, 값을 수정할 수 있음.
- Set (집합):
- 예시: {1, 2, 3}
- 요소를 추가하거나 삭제할 수 있음. 중복된 값을 허용하지 않음.
- Bytearray:
- 예시: bytearray(b"hello")
- 바이트 배열로, 개별 바이트 값을 변경할 수 있음.
Immutable (변경 불가능) 데이터 타입:
- String (문자열):
- 예시: "hello"
- 문자열의 개별 문자를 변경할 수 없음.
- Tuple (튜플):
- 예시: (1, 2, 3)
- 한 번 생성된 튜플은 수정할 수 없음.
- frozenset (고정 집합):
- 예시: frozenset([1, 2, 3])
- 집합처럼 동작하지만, 요소를 추가하거나 삭제할 수 없음.
- Bytes:
- 예시: b"hello"
- 바이트 배열의 불변 버전. 변경할 수 없음.
- 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 |