본문 바로가기
IT 이것저것/파이썬python

효율적인 코딩을 위한 22가지 핫한 파이썬의 팁과 트릭

by KaNonx카논 2025. 4. 4.
반응형

🐍 효율적인 코딩을 위한 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 코드를 작성해 보세요! 🚀

반응형

댓글

KaNonx카논님의
글이 좋았다면 응원을 보내주세요!