[Python] List vs String: 출력값을 저장했다가 한꺼번에 출력할 때 더 효율적인 것은?

송히·2024년 5월 14일
0

개발 공부 🐨

목록 보기
11/15
post-thumbnail

저는 알고리즘을 풀 때 늘 이런 고민을 했습니다.
출력값을 저장하는 곳을 리스트로 만들어야 할까, 문자열로 만들어야 할까?
그동안 뭔가 문자열이 빠를 것 같다는 생각에 문자열을 사용했는데, 이번에 제대로 알아보았습니다 😎


사용법

리스트를 사용해 값을 저장한 후, 문자열로 변환하기

리스트를 생성한 후, append로 계속 출력값을 추가하는 방식입니다.
마지막에 리스트를 문자열로 변환하여 출력합니다.

answersList = []
answersList.append(newAnswer)

print("\n".join(answersList))

문자열에 계속 추가하기

출력값+join()을 사용해 문자열에 바로 추가하는 방식입니다.
마지막에 출력값이 모여진 문자열을 출력합니다.

answersStr += newAnswer + "\n"

print(answersStr)

리스트와 문자열의 비교

파이썬에서 여러 개의 출력값을 저장하고, 마지막으로 한꺼번에 출력할 때 어떤 게 더 효율적일까?
정답부터 말씀드리자면 리스트가 더 효율적입니다!

  • 파이썬은 문자열immutable(불변)한 객체로 취급하기 때문에, 문자열에 출력값을 덧붙일 때마다 새로운 문자열 객체가 메모리에 생성됩니다.
    또, 문자열이 덧붙여질 때마다 계속 더 큰 문자열을 생성해야하기 때문에 메모리 재할당이 자주 발생할 수 있습니다.

  • 파이썬에서의 리스트mutable(변경 가능)한 객체이기 때문에, 출력값을 추가하는 것에 메모리 재할당이 적게 발생합니다. 또, 빠르게 값을 추가할 수 있습니다.
    리스트는 개별 객체로 출력값을 메모리에 저장하다가, 마지막에 문자열로 변환하며 하나의 큰 문자열만 생성합니다.

따라서 리스트를 사용하는 것이 속도와 메모리적 측면에서 더욱 효율적입니다 👍🏻

profile
데브코스 프론트엔드 5기

0개의 댓글

관련 채용 정보