파이썬을 더욱 효율적으로 사용하기 위해 알아두면 좋은 다양한 기능과 팁들을 모아 소개하겠습니다.
파이썬에서 딕셔너리 키를 사용할 때, 존재하지 않는 키를 조회하면 KeyError가 발생합니다. 하지만 .get() 메서드를 사용하면 키가 없을 경우 기본값을 반환할 수 있어 코드의 안정성이 높아집니다. 예를 들어, 키 'c'가 없는 경우 예외가 발생하는 대신 안전하게 기본값 0을 반환합니다.
my_dict = {'a': 1, 'b': 2}
value = my_dict.get('c', 0) # 키 'c'가 없으므로 기본값 0 반환
이 메서드를 사용하면 예외 처리 없이도 부드러운 코드 흐름을 유지할 수 있습니다.
리스트 컴프리헨션은 파이썬에서 리스트를 빠르고 간결하게 생성하는 방법입니다. 기존의 for 루프를 한 줄로 표현하여 가독성을 높입니다. 예를 들어, 다음 코드는 0부터 9까지의 숫자를 2배로 변환한 리스트를 생성합니다.
numbers = [x * 2 for x in range(10)] # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
이 방법은 리스트를 생성하거나 변환할 때 매우 직관적이고 간결한 코드를 작성할 수 있게 해줍니다.
리스트를 순회할 때 인덱스가 필요하다면, enumerate() 함수를 사용할 수 있습니다. 이 함수는 리스트의 인덱스와 값을 동시에 반환하여 루프를 더 간결하게 만듭니다.
my_list = ['a', 'b', 'c']
for index, value in enumerate(my_list):
print(index, value)
이 방법을 사용하면 루프 내에서 인덱스를 관리할 필요 없이 리스트 요소와 함께 인덱스를 편리하게 사용할 수 있습니다.
여러 리스트를 동시에 순회해야 할 때, zip() 함수는 각 리스트의 요소를 동시에 묶어 처리할 수 있게 합니다. 예를 들어, 숫자와 문자를 동시에 처리하고자 할 때 이렇게 사용할 수 있습니다.
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for num, char in zip(list1, list2):
print(num, char)
이 방법은 여러 리스트를 병렬로 처리할 때 가독성을 높여주며, 복잡한 구조를 간결하게 표현할 수 있습니다.
리스트에서 중복 요소를 제거할 때, set()을 사용하면 매우 간단합니다. set은 중복을 허용하지 않으므로, 리스트를 set으로 변환하면 자동으로 중복이 제거됩니다.
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list)) # [1, 2, 3, 4, 5]
중복 요소가 많을 경우, 리스트를 set
으로 변환하면 쉽게 중복을 제거할 수 있습니다.
collections.defaultdict를 사용하면 존재하지 않는 키를 조회할 때 기본값을 자동으로 설정할 수 있어, 키 유무를 별도로 확인할 필요가 없습니다.
from collections import defaultdict
d = defaultdict(int)
d['a'] += 1 # 키 'a'의 값이 0에서 1로 자동 증가
이 방법은 딕셔너리 값을 추가하거나 변경할 때 키가 없는 경우에도 쉽게 처리할 수 있는 유연함을 제공합니다.
리스트에서 각 요소가 몇 번 등장했는지 알고 싶을 때, 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})
이 방법은 데이터 분석이나 통계 작업에서 데이터의 빈도나 분포를 빠르게 확인할 때 매우 유용합니다.
파일을 열고 닫는 처리를 할 때, with 문을 사용하면 더 깔끔하고 안전한 코드를 작성할 수 있습니다. 파일을 열면 자동으로 닫아주는 처리까지 해주기 때문에 실수로 파일을 닫지 않는 문제를 방지할 수 있습니다.
with open('file.txt', 'r') as f:
content = f.read() # 파일을 자동으로 닫아줌
with
문을 사용하면 리소스 해제와 같은 중요한 처리를 자동으로 할 수 있어 코드가 안전해집니다.
파이썬 3.6 이상에서는 f-strings를 사용하여 문자열을 간결하고 직관적으로 포매팅할 수 있습니다. 변수나 표현식을 문자열 내부에 직접 삽입할 수 있습니다.
name = "Python"
print(f"Hello, {name}!") # Hello, Python!
f-strings는 기존의 %
또는 str.format()
보다 직관적이며, 성능 면에서도 더 빠릅니다.
리스트 컴프리헨션처럼, 딕셔너리도 컴프리헨션을 사용해 짧고 간결하게 생성할 수 있습니다. 다음 예시는 숫자를 키로, 그 제곱을 값으로 하는 딕셔너리를 생성합니다.
squares = {x: x**2 for x in range(5)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
이 방법을 사용하면 딕셔너리 생성과 동시에 데이터를 변환하거나 처리할 수 있어 코드를 더 간결하게 작성할 수 있습니다.