
🐍 효율적인 코딩을 위한 22가지 핫한 Python 트릭
Python은 간결하고 강력한 문법 덕분에 개발자들에게 사랑받는 언어입니다.
여기서는 Python을 더 효율적으로 사용할 수 있도록 돕는 핵심 트릭 22가지를 소개합니다! 🚀
🔥 1. 리스트 컴프리헨션 사용하기
리스트를 더 간결하게 만들고 속도를 높일 수 있습니다.
# 일반적인 방법
numbers = []
for i in range(10):
numbers.append(i ** 2)
# 리스트 컴프리헨션 사용
numbers = [i ** 2 for i in range(10)]
🏎 2. enumerate()로 인덱스와 값 동시 활용
반복문에서 인덱스와 값을 함께 가져올 때 유용합니다.
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
📌 start=1을 사용하면 1부터 시작하는 인덱스를 생성할 수 있습니다.
🏗 3. zip()을 사용하여 두 개 이상의 리스트 병렬 순회
여러 개의 리스트를 동시에 반복할 때 유용합니다.
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name} scored {score}")
⚡ 4. *을 활용한 리스트 언패킹
리스트를 개별 요소로 분리할 때 *을 사용할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
first, *middle, last = numbers
print(first) # 1
print(middle) # [2, 3, 4]
print(last) # 5
📌 *middle은 리스트의 중간 값을 리스트로 저장합니다.
🎯 5. 딕셔너리 컴프리헨션
딕셔너리를 빠르게 생성하는 방법입니다.
squares = {x: x**2 for x in range(5)}
print(squares) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
📌 6. get()을 사용한 안전한 딕셔너리 조회
키가 존재하지 않을 때 에러 없이 기본값을 반환할 수 있습니다.
data = {'name': 'Alice', 'age': 25}
# 키가 없으면 None 반환
print(data.get('city')) # None
# 기본값 설정 가능
print(data.get('city', 'Unknown')) # Unknown
🕵️ 7. f-문자열을 사용한 빠른 문자열 포맷팅
Python 3.6+에서는 f-문자열이 가장 빠르고 가독성이 좋습니다.
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
🏆 8. collections.Counter로 리스트 내 요소 개수 세기
리스트의 요소 빈도를 쉽게 카운트할 수 있습니다.
from collections import Counter
words = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana']
word_count = Counter(words)
print(word_count) # Counter({'banana': 3, 'apple': 2, 'orange': 1})
🔄 9. set()을 사용한 리스트 중복 제거
리스트의 중복 요소를 간단하게 제거할 수 있습니다.
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers) # [1, 2, 3, 4, 5]
📌 set은 순서를 보장하지 않으므로, 정렬이 필요하면 sorted()를 사용하세요.
🚀 10. lambda를 활용한 간단한 함수
짧은 함수는 lambda를 사용하여 간결하게 표현할 수 있습니다.
square = lambda x: x ** 2
print(square(5)) # 25
🧑💻 11. map()으로 리스트 변환
반복문 없이 리스트의 모든 요소에 함수를 적용할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16, 25]
🏗 12. filter()로 리스트 필터링
특정 조건을 만족하는 요소만 남길 때 사용합니다.
numbers = [10, 20, 30, 40, 50]
filtered = list(filter(lambda x: x > 25, numbers))
print(filtered) # [30, 40, 50]
📂 13. 파일 읽기/쓰기 시 with 문 사용
파일을 다룰 때 with 문을 사용하면 자동으로 파일이 닫힙니다.
with open('file.txt', 'r') as f:
content = f.read()
🔀 14. 리스트 요소 개수를 한 줄로 세기
리스트 내 특정 요소의 개수를 빠르게 찾을 수 있습니다.
numbers = [1, 2, 2, 3, 3, 3, 4]
print(numbers.count(3)) # 3
🧵 15. all()과 any() 활용
여러 조건을 한 번에 평가할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
print(all(n > 0 for n in numbers)) # True
print(any(n > 3 for n in numbers)) # True
🚦 16. isinstance()로 타입 확인
여러 타입을 한 번에 검사할 수 있습니다.
x = 5
print(isinstance(x, (int, float))) # True
⏳ 17. timeit을 활용한 코드 실행 속도 측정
어떤 코드가 더 빠른지 확인할 수 있습니다.
import timeit
print(timeit.timeit("sum(range(1000))", number=10000))
📌 18. defaultdict를 사용하여 KeyError 방지
존재하지 않는 키를 자동으로 초기화할 수 있습니다.
from collections import defaultdict
data = defaultdict(int)
data['a'] += 1
print(data['a']) # 1
📅 19. datetime을 사용한 날짜 및 시간 처리
현재 날짜와 시간을 쉽게 가져올 수 있습니다.
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2025-03-08 12:34:56
🔗 20. itertools를 활용한 조합 및 순열 생성
from itertools import permutations, combinations
data = [1, 2, 3]
print(list(permutations(data, 2))) # 순열
print(list(combinations(data, 2))) # 조합
이 외에도 Python에는 다양한 유용한 기능이 있습니다.
이 트릭들을 활용하여 더 효율적인 Python 코드를 작성해 보세요! 🚀
'IT 이것저것 > 파이썬python' 카테고리의 다른 글
파이썬 기초 배우기: 간단한 가계부 및 비용 추적기를 코딩 해 보기 (0) | 2025.02.04 |
---|---|
초보자를 위한 파이썬 프로그래밍: 간단한 퀴즈 앱을 만들자 (0) | 2025.02.03 |
파이썬을 사용한 초보 코딩: 주사위 굴리기 시뮬레이터 개발 (0) | 2025.02.02 |
파이썬을 계산기로 사용해야 하는 이유(및 시작하는 방법) (1) | 2025.02.01 |
파이썬으로, 네이버 자동로그인 하는 프로그램 짜기 (0) | 2019.08.28 |
댓글
KaNonx카논님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.