Python 팁 모음

Dev Smile·2024년 9월 9일
1

파이썬을 더욱 효율적으로 사용하기 위해 알아두면 좋은 다양한 기능과 팁들을 모아 소개하겠습니다.

1. dict.get() 메서드로 안전한 키 조회

파이썬에서 딕셔너리 키를 사용할 때, 존재하지 않는 키를 조회하면 KeyError가 발생합니다. 하지만 .get() 메서드를 사용하면 키가 없을 경우 기본값을 반환할 수 있어 코드의 안정성이 높아집니다. 예를 들어, 키 'c'가 없는 경우 예외가 발생하는 대신 안전하게 기본값 0을 반환합니다.

my_dict = {'a': 1, 'b': 2}
value = my_dict.get('c', 0)  # 키 'c'가 없으므로 기본값 0 반환

이 메서드를 사용하면 예외 처리 없이도 부드러운 코드 흐름을 유지할 수 있습니다.

2. 리스트 컴프리헨션으로 간결한 리스트 생성

리스트 컴프리헨션은 파이썬에서 리스트를 빠르고 간결하게 생성하는 방법입니다. 기존의 for 루프를 한 줄로 표현하여 가독성을 높입니다. 예를 들어, 다음 코드는 0부터 9까지의 숫자를 2배로 변환한 리스트를 생성합니다.

numbers = [x * 2 for x in range(10)]  # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

이 방법은 리스트를 생성하거나 변환할 때 매우 직관적이고 간결한 코드를 작성할 수 있게 해줍니다.

3. enumerate()로 인덱스와 값 함께 처리

리스트를 순회할 때 인덱스가 필요하다면, enumerate() 함수를 사용할 수 있습니다. 이 함수는 리스트의 인덱스와 값을 동시에 반환하여 루프를 더 간결하게 만듭니다.

my_list = ['a', 'b', 'c']
for index, value in enumerate(my_list):
    print(index, value)

이 방법을 사용하면 루프 내에서 인덱스를 관리할 필요 없이 리스트 요소와 함께 인덱스를 편리하게 사용할 수 있습니다.

4. zip()으로 리스트 병렬 처리

여러 리스트를 동시에 순회해야 할 때, zip() 함수는 각 리스트의 요소를 동시에 묶어 처리할 수 있게 합니다. 예를 들어, 숫자와 문자를 동시에 처리하고자 할 때 이렇게 사용할 수 있습니다.

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for num, char in zip(list1, list2):
    print(num, char)

이 방법은 여러 리스트를 병렬로 처리할 때 가독성을 높여주며, 복잡한 구조를 간결하게 표현할 수 있습니다.

5. Set으로 중복 제거

리스트에서 중복 요소를 제거할 때, set()을 사용하면 매우 간단합니다. set은 중복을 허용하지 않으므로, 리스트를 set으로 변환하면 자동으로 중복이 제거됩니다.

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))  # [1, 2, 3, 4, 5]

중복 요소가 많을 경우, 리스트를 set으로 변환하면 쉽게 중복을 제거할 수 있습니다.

6. defaultdict로 자동 기본값 설정

collections.defaultdict를 사용하면 존재하지 않는 키를 조회할 때 기본값을 자동으로 설정할 수 있어, 키 유무를 별도로 확인할 필요가 없습니다.

from collections import defaultdict

d = defaultdict(int)
d['a'] += 1  # 키 'a'의 값이 0에서 1로 자동 증가

이 방법은 딕셔너리 값을 추가하거나 변경할 때 키가 없는 경우에도 쉽게 처리할 수 있는 유연함을 제공합니다.

7. Counter로 빈도 쉽게 계산하기

리스트에서 각 요소가 몇 번 등장했는지 알고 싶을 때, Counter를 사용할 수 있습니다. 이를 활용하면 데이터 빈도를 빠르게 파악할 수 있습니다.

from collections import Counter

my_list = ['a', 'b', 'a', 'c', 'b', 'a']
count = Counter(my_list)
print(count)  # Counter({'a': 3, 'b': 2, 'c': 1})

이 방법은 데이터 분석이나 통계 작업에서 데이터의 빈도나 분포를 빠르게 확인할 때 매우 유용합니다.

8. with 문으로 리소스 관리

파일을 열고 닫는 처리를 할 때, with 문을 사용하면 더 깔끔하고 안전한 코드를 작성할 수 있습니다. 파일을 열면 자동으로 닫아주는 처리까지 해주기 때문에 실수로 파일을 닫지 않는 문제를 방지할 수 있습니다.

with open('file.txt', 'r') as f:
    content = f.read()  # 파일을 자동으로 닫아줌

with 문을 사용하면 리소스 해제와 같은 중요한 처리를 자동으로 할 수 있어 코드가 안전해집니다.

9. f-strings로 간결한 문자열 포매팅

파이썬 3.6 이상에서는 f-strings를 사용하여 문자열을 간결하고 직관적으로 포매팅할 수 있습니다. 변수나 표현식을 문자열 내부에 직접 삽입할 수 있습니다.

name = "Python"
print(f"Hello, {name}!")  # Hello, Python!

f-strings는 기존의 % 또는 str.format()보다 직관적이며, 성능 면에서도 더 빠릅니다.

10. 딕셔너리 컴프리헨션으로 딕셔너리 생성

리스트 컴프리헨션처럼, 딕셔너리도 컴프리헨션을 사용해 짧고 간결하게 생성할 수 있습니다. 다음 예시는 숫자를 키로, 그 제곱을 값으로 하는 딕셔너리를 생성합니다.

squares = {x: x**2 for x in range(5)}  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

이 방법을 사용하면 딕셔너리 생성과 동시에 데이터를 변환하거나 처리할 수 있어 코드를 더 간결하게 작성할 수 있습니다.

0개의 댓글

관련 채용 정보