파이썬은 배우기 쉽고, 강력하며 다양한 용도로 활용할 수 있는 프로그래밍 언어로, 데이터 과학 📊, 웹 개발 🌐, 자동화 🤖 등 여러 분야에서 폭넓게 사용되고 있습니다. 이 글에서는 더 나은 파이썬 코드를 작성하는 데 도움이 될 🔟가지 팁을 소개합니다.
1. "이터레이터" 사용하여 메모리 💾 절약하기
대용량 데이터 📂 처리 시, 모든 데이터를 한 번에 메모리에 적재하기 어렵다면 이터레이터를 사용해 데이터를 하나씩 처리할 수 있습니다. 이를 통해 메모리 효율성을 높이고 대용량 데이터를 효율적으로 처리할 수 있습니다.
# 대용량 숫자 리스트를 하나씩 처리하는 이터레이터 함수
def process_large_data(data):
for item in data:
yield item
large_data = range(1, 1000000)
for item in process_large_data(large_data):
if item % 100000 == 0:
print(f"📊 현재 처리 중인 데이터: {item}")
2. "get()"를 사용하여 기본값 처리하기
딕셔너리 📑에서 키가 존재하지 않는 경우 기본값을 설정하고 싶다면 "get()"을 사용하면 코드를 간결하게 작성할 수 있습니다.
inventory = {"👖": 500, "👚": 600}
products_to_add = ["👗", "👕", "🧥"]
for product in products_to_add:
stock = inventory.get(product, 500)
inventory[product] = stock
print("최종 재고 🏪:", inventory)
3. "람다 함수 🔄 매핑"을 사용하여 "if-elif" 대체하기
여러 함수 호출을 사용자의 입력에 따라 결정해야 할 때, "if-elif" 대신 람다 함수를 딕셔너리에 매핑하여 코드를 간결하게 작성할 수 있습니다.
funcs_dict = {
1: lambda: print("📞 첫 번째 함수 호출 중..."),
2: lambda: print("📞 두 번째 함수 호출 중..."),
}
options = int(input("옵션을 입력하세요: "))
funcs_dict.get(options, lambda: print("📞 기본 함수 호출 중..."))()
4. "Counter"를 사용하여 빈도 계산하기
텍스트 데이터에서 단어의 빈도를 계산할 때 "Counter"를 사용하면 간단하게 빈도 계산을 할 수 있습니다.
from collections import Counter
import re
with open("📄 sample_text.txt", "r") as file:
text = file.read()
words = re.findall(r'\w+', text.lower())
word_counts = Counter(words)
most_common_word, count = word_counts.most_common(1)[0]
print(f"가장 많이 나온 단어 🏆: {most_common_word} ({count}회)")
5. "캐싱"을 통한 코드 최적화 🚀
재귀 함수의 반복 호출을 최적화하기 위해 "캐싱" 기법을 사용하면 동일한 입력값에 대해 불필요한 계산을 줄일 수 있습니다. 대표적인 예는 피보나치 수열입니다.
from functools import cache
@cache
def fibonacci(num):
if num < 2:
return num
return fibonacci(num - 1) + fibonacci(num - 2)
result = fibonacci(48)
print(f"결과 🧮: {result}")
6. "데코레이터" 사용하여 로그 추가하기 📝
여러 함수의 실행 로그를 기록해야 할 때, 각각의 함수에 로그를 추가하는 대신 데코레이터를 사용해 간단하게 처리할 수 있습니다.
def log_function_call(func):
def wrapper(*args, **kwargs):
print(f"{func.__name__}() 함수가 호출되었습니다.")
return func(*args, **kwargs)
return wrapper
@log_function_call
def greet(name):
print(f"안녕하세요, {name}님! 👋")
greet("철수")
7. "데이터 클래스"로 깔끔한 데이터 구조 만들기 🧹
데이터를 담기 위한 클래스를 만들 때, 파이썬의 "데이터 클래스(dataclass)"를 사용하면 초기화 메서드를 작성하는 번거로움을 줄이고, 가독성과 유지보수를 향상시킬 수 있습니다.
from dataclasses import dataclass
@dataclass
class Product:
name: str
price: float
stock: int
product = Product(name='💻 Laptop', price=1500.0, stock=10)
print(product)
8. "match"를 사용한 상태 처리 🔄
파이썬 3.10부터 추가된 "match" 문을 사용하면 상태나 조건을 간단하고 직관적으로 처리할 수 있습니다.
def get_status_code_message(status_code):
match status_code:
case 200:
return "성공 ✅"
case 400:
return "잘못된 요청 ❌"
case 404:
return "찾을 수 없음 🔍"
case _:
return "알 수 없는 상태 코드 ❓"
print(get_status_code_message(404))
9. "all"과 "any" 연산자 사용하기 🔎
"all"과 "any" 연산자를 사용하면 조건 검사를 간단하게 작성할 수 있습니다.
form_data = {"name": "Nikita", "email": "nikita@gmail.com", "phone": "📞 1234567890"}
required_fields = ["name", "email", "phone"]
if all(form_data.get(field) for field in required_fields):
print("모든 필수 항목이 입력되었습니다. ✅")
else:
print("필수 항목이 누락되었습니다. ❌")
🔟. "컴프리헨션"을 사용한 간결한 코드 작성 ✨
리스트, 딕셔너리, 세트 등을 처리할 때 컴프리헨션을 사용해 코드를 간결하게 작성할 수 있습니다.
students = ["Alice", "Bob", "Charlie", "David"]
student_scores = {student: len(student) * 10 for student in students}
print(student_scores) # {'Alice': 50, 'Bob': 30, 'Charlie': 70, 'David': 50}
더 나은 코드를 작성하는 것은 다른 사람들과 협업하고, 코드의 가독성을 높이는 데 매우 중요합니다. 이 🔟가지 팁을 활용해 더욱 효율적이고 생산적인 🐍 코딩을 해보세요.
'프로그래밍 언어(Programming Languages) > 파이썬(Python)' 카테고리의 다른 글
[파이썬 Python] 최고로 효율적인 Python 프로젝트를 빠르게 설정하는 방법 🐍 (1) | 2024.11.03 |
---|---|
[파이썬 Python] 파이썬 개발자라면 꼭 알아야 할 10가지 코드 지름길! (1) | 2024.11.03 |
[Python] Pydeps: 프로젝트의 의존성(Project Dependency)을 쉽게 시각화하세요! 🌟📊 (Dependency Graphs) (1) | 2024.10.29 |
[Python] 파이썬 f-스트링 활용법 2탄: 고급 기능과 팁 💡 (3) | 2024.08.28 |
[Python] 🛠️ tiktoken 패키지: OpenAI 토큰 관리를 위한 필수 도구 (0) | 2024.06.18 |