Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 개발자라면 꼭 알아야 할 10가지 유용한 코딩 트릭

파이썬이 널리 보급되면서 코드를 더 짧고 깔끔하게 작성할 수 있는 다양한 기능들이 계속 추가되고 있습니다. 이러한 기능을 잘 활용하면 생산성과 가독성을 동시에 높일 수 있습니다. 이 글에서는 실무에서 자주 쓰이면서도 유용한 파이썬 트릭 10가지를 소개합니다.

1. 리스트 뒤집기

reverse() 함수를 사용하면 리스트를 간단히 역순으로 정렬할 수 있습니다. 숫자와 문자열 등 다양한 데이터 타입이 섞여 있어도 문제없이 처리됩니다.

예제

List = ["Shriya", "Lavina", "Sampreeti"]
List.reverse()
print(List)

결과

['Sampreeti', 'Lavina', 'Shriya']

2. 리스트 요소를 원하는 순서로 출력하기

리스트를 여러 변수에 언패킹하면, 프로그램 로직에 따라 원하는 순서대로 값을 출력하거나 재배열할 수 있습니다.

예제

List = [1, 2, 3]
w, v, t = List
print(v, w, t)
print(t, v, w)

결과

2 1 3
3 2 1

3. 함수 안에서 제너레이터 활용하기

제너레이터 표현식을 함수 인자로 바로 전달하면 별도의 반복문 없이 더 짧고 깔끔한 코드를 작성할 수 있습니다. 아래 예제에서는 sum() 함수에 제너레이터를 직접 넣어 합계를 구합니다.

예제

sum(i for i in range(10))

결과

45

4. zip() 함수 활용하기

여러 개의 리스트나 튜플 같은 이터러블 객체를 하나로 묶어야 할 때는 zip() 함수가 유용합니다. 각 리스트의 요소들이 위치별로 짝지어진 튜플 묶음을 만들어 줍니다. 참고로 파이썬 3에서는 결과가 이터레이터로 반환되므로, 리스트로 확인하려면 list()로 감싸주면 됩니다.

예제

Year = (1999, 2003, 2011, 2017)
Month = ("Mar", "Jun", "Jan", "Dec")
Day = (11, 21, 13, 5)
print(list(zip(Year, Month, Day)))

결과

[(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]

5. 한 줄의 코드로 두 변수 값 교환하기

일반적으로 두 변수의 값을 바꾸려면 임시 변수가 필요하지만, 파이썬에서는 임시 변수 없이 한 줄로 처리할 수 있습니다.

예제

x, y = 11, 34
print(x)
print(y)
x, y = y, x
print(x)
print(y)

결과

11
34
34
11

6. 행렬 전치(Transpose)하기

행렬의 전치는 행과 열을 서로 맞바꾸는 연산입니다. 반복문으로 요소의 위치를 하나씩 옮기는 방법도 있지만, zip() 함수와 * 연산자(언패킹)를 조합하면 한 줄로 간단히 처리할 수 있습니다.

예제

x = [[31, 17],
     [40, 51],
     [13, 12]]
print(list(zip(*x)))

결과

[(31, 40, 13), (17, 51, 12)]

7. 문자열 N번 반복 출력하기

문자열을 여러 번 출력할 때 보통은 반복문을 작성하지만, 파이썬에서는 문자열과 숫자를 곱하는 간단한 방법으로 해결할 수 있습니다.

예제

str = "Point"
print(str * 3)

결과

PointPointPoint

8. 슬라이싱으로 리스트 뒤집기

슬라이싱은 파이썬의 강력한 기능 중 하나로, [::-1]처럼 증감값을 -1로 지정하면 리스트 요소의 순서를 손쉽게 뒤집을 수 있습니다. reverse() 함수와 달리 원본 리스트는 그대로 유지됩니다.

예제

# 문자열 리스트 뒤집기
list1 = ["a", "b", "c", "d"]
print(list1[::-1])

# 숫자 리스트 뒤집기
list2 = [1, 3, 6, 4, 2]
print(list2[::-1])

결과

['d', 'c', 'b', 'a']
[2, 4, 6, 3, 1]

9. 숫자의 약수 구하기

계산이나 분석을 위해 특정 숫자의 약수가 필요하다면, 1부터 해당 숫자까지 나누어 떨어지는지 검사하는 간단한 반복문으로 약수를 찾을 수 있습니다.

예제

f = 32
print("The factors of", f, "are:")
for i in range(1, f + 1):
    if f % i == 0:
        print(i)

결과

The factors of 32 are:
1
2
4
8
16
32

10. 메모리 사용량 확인하기

sys 모듈의 getsizeof() 함수를 사용하면 선언된 각 변수가 차지하는 메모리 크기를 바이트 단위로 확인할 수 있습니다. 아래 예제에서 볼 수 있듯이, 문자열의 길이에 따라 소비되는 메모리 양도 달라집니다.

예제

import sys
a, b, c, d = "abcde", "xy", 2, 15.06
print(sys.getsizeof(a))
print(sys.getsizeof(b))
print(sys.getsizeof(c))
print(sys.getsizeof(d))

결과

54
35
28
24