<더 효율적인 Python 프로그래머가 되려면> Python은 진입 장벽이 낮고 다양한 플랫폼을 지원하기 때문에 인기가 있습니다. TIOBE 인덱스에서도 C, Java에 이은 3위를 계속 유지하고 있고, 비개발자들도 많이 배우는 언어 중 하나죠. Python의 미덕을 들자면 여러가지가 있겠지만, list, dict, tuple, set 등의 다양한 collection과 이를 쉽게 핸들링할 수 있는 method, built-in function 등을 제공한다는 점을 빼놓을 수 없습니다. 링크는 list를 생성할 때와 list를 iterate 하면서 각 element에 특정 연산을 수행할 때 가능한 여러 방법을 소개하고 성능을 비교해 본 아티클입니다. 1. list 생성 크게 for loop, map built-in function, list 안에 생성 조건을 표현한 수식을 넣은 list comprehension으로 나눌 수 있습니다. 이 중 list comprehension 방식이 직관적으로 이해도 쉬우면서 가장 빠른 속도를 기록했고, for loop은 가독성이 좋고 성능도 전자에 약간 뒤쳐지는 정도입니다. map function은 (일반적인 map function의 동작을 알고 있지 않은 사람에겐) 이해하기 어려우면서 가장 느린 성능을 보였습니다. 2. list iteration 역시 for loop, reduce built-in function, math 라이브러리 등에서 제공하는 dedicated function으로 나눌 수 있습니다. (원래 그 목적으로 만들어졌으니 당연하게도) dedicated function이 압도적인 속도를 기록했고, for loop은 마찬가지로 가독성이 좋고 성능도 중간 정도입니다. reduce function은 map과 동일하게 이해하기 어려우면서 가장 느린 성능을 보였습니다. 성능 측정의 결과를 보면 의외로 built-in function의 성능이 구리고 for loop의 성능이 나쁘지가 않음을 알 수 있습니다. Python의 list iteration에 대해 정리하면 다음과 같이 나눌 수 있을 듯 합니다. - 구현하려는 로직에 대한 dedicated function이 존재한다면 그냥 이걸 쓰면 됩니다. 두 번 쓰세요. - for loop는 장황하지만 이해하기 쉬우며 그 이유 때문에 왠지 느려보이는데, 의외로 나쁘지 않은 성능을 보입니다. for loop로 구현해 놓고 죄책감을 가질 필요는 없습니다. - built-in function은 의외로 느립니다. 성능이 크게 중요하지 않고 코드를 짧게 짜고 싶다면 선택 가능한 옵션입니다. --- (🚀 채용 광고) '신상마켓'을 운영하는 딜리셔스에서는 동대문 패션 생태계를 기술을 통하여 더 나은 모습으로 디지털화하고 함께 성장하여 글로벌까지 연결하는 꿈을 갖고 있습니다.🚀 이런 분들을 찾고 있습니다. - Java / RubyOnRails Developers - Android / iOS Developers - Web Developers (React.js / Vue.js) - Data Engineers on AWS - DevOps on AWS - Product Managers / Product Designers - Data Analysists - Ad Platform Developers / PMs b2b 뿐만 아니라 b2b2c/글로벌 등 다양한 제품군을 준비 중이고, 주도적으로 오너십을 갖고, 자율적으로 일하는 환경을 지향합니다 ☺️ 채용 더 알아보기 >> https://www.notion.so/e8747fb16efe4f1ba7747e7f96f9d373

Become a More Efficient Python Programmer

Medium

Become a More Efficient Python Programmer

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2021년 3월 8일 오전 9:49

댓글 0