-
왜 Python 에서 `list`타입이 `replace` 메소드를 지원하지 않을까?언어/Python 2024. 5. 28. 09:42
[결론]
Python에서 list 타입이 replace 메소드를 지원하지 않는 이유는 list 객체가 가변 객체 (mutable object) 이기 때문입니다. 가변 객체란 그 내용을 직접 변경할 수 있는 객체를 의미합니다. 리스트는 그 내부의 요소들을 직접 수정, 추가, 삭제할 수 있는 다양한 메소드를 제공합니다. 하지만, replace 메소드는 일반적으로 문자열에서 특정 부분을 다른 부분으로 대체하기 위해 사용됩니다. 문자열은 불변 객체이기 때문에, 문자열에서 replace를 사용하면 새로운 문자열이 생성됩니다. 리스트는 가변 객체이기 때문에, 리스트 내의 특정 요소를 대체하는 작업을 직접 수행할 수 있는 여러 방법이 이미 제공되어 있으며, replace와 같은 메소드가 필요하지 않습니다.
[리스트의 요소를 대체하는 방법]
예시 1: 인덱스를 사용한 요소 대체
리스트의 특정 요소를 다른 요소로 대체할 때는 인덱스를 사용할 수 있습니다.
lst = [1, 2, 3, 4, 5] lst[2] = 99 print(lst) # 출력: [1, 2, 99, 4, 5]
예시 2: 리스트 내 모든 특정 값을 대체
리스트의 모든 특정 값을 다른 값으로 대체하고 싶다면 리스트 컴프리헨션을 사용할 수 있습니다.
lst = [1, 2, 3, 2, 5] lst = [99 if x == 2 else x for x in lst] print(lst) # 출력: [1, 99, 3, 99, 5]
예시 3: 반복문을 사용한 요소 대체
반복문을 사용하여 특정 값을 대체할 수도 있습니다.
lst = [1, 2, 3, 2, 5] for i in range(len(lst)): if lst[i] == 2: lst[i] = 99 print(lst) # 출력: [1, 99, 3, 99, 5]
'언어 > Python' 카테고리의 다른 글
[Python] BOJ 1012: 유기농 배추 (0) 2024.11.18 [Python] BOJ 7576: 토마토(feat. 3일 걸렸다.) (5) 2024.11.07 왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까? (0) 2024.05.28 [Python] 당신의 for문에서 map()이 안되는 이유 (0) 2024.04.22 [Python] List Comprehensions이란? (0) 2024.04.22