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

개발자라면 알아야 할 놀라운 파이썬(Python) 실용 트릭 총정리

파이썬은 방대한 라이브러리 생태계 덕분에 다양하고 흥미로운 작업을 손쉽게 처리할 수 있는 매력적인 프로그래밍 언어입니다. 이 글에서는 일상적인 코딩에서 유용하게 활용할 수 있는 대표적인 파이썬 트릭들을 예제와 함께 정리했습니다. 하나씩 익혀두면 코드가 더 간결해지고 생산성도 크게 향상될 것입니다.

1. 같은 문자 여러 번 출력하기

다른 프로그래밍 언어에서는 반복 문자를 출력하려면 같은 문자를 원하는 만큼 직접 입력하거나 반복문을 돌려야 합니다. 하지만 파이썬에는 이런 번거로움을 줄여주는 더 간단한 방법이 있습니다.

곱셈 연산자(*)를 문자열에 사용하면 해당 문자열을 지정한 횟수만큼 반복할 수 있습니다.

예제

print("I love program at tutorials point " + "TP" * 4);

출력 결과

I love program at tutorials point TPTPTPTP

2. 리스트 요소를 다양한 방식으로 출력하기

리스트는 서로 다른 자료형을 담을 수 있는 배열과 비슷한 자료구조입니다. 기본적으로 리스트를 print()로 출력하면 대괄호([])와 작은따옴표('')가 함께 표시됩니다. 하지만 join() 메서드를 사용하면 훨씬 깔끔하고 가독성 좋은 형태로 출력할 수 있습니다.

join() 메서드는 리스트를 문자열로 변환하며, 리스트의 각 요소를 join()을 호출한 구분자 문자열로 연결해 줍니다.

예제

bikes = ['thunderbird', 'Pulsar', 'R15', 'Duke']
# 전통적인 리스트 출력 방법
print("Bikes are :", bikes)
# join 메서드를 활용한 리스트 출력
print("Bikes are : %s" % ','.join(bikes))
print('Bikes are : ', (" and ".join(bikes)))

출력 결과

Bikes are : ['thunderbird', 'Pulsar', 'R15', 'Duke']
Bikes are : thunderbird,Pulsar,R15,Duke
Bikes are : thunderbird and Pulsar and R15 and Duke

3. 여러 리스트를 동시에 출력하기

파이썬은 두 개 이상의 리스트 요소를 짝(pair) 형태로 묶어 동시에 출력하는 방법도 제공합니다. 바로 zip() 함수인데, 길이가 같은 두 리스트를 받아 요소들을 하나씩 짝지어 반환합니다.

예제

bikes = ['thunderbird', 'Pulsar', 'R15', 'Duke']
speed = ['142', '135', '137', '145']
for bike, maxspeed in zip(bikes, speed):
    print(bike, maxspeed)

출력 결과

thunderbird 142
Pulsar 135
R15 137
Duke 145

4. 값 교환(Swap) 숏핸드 트릭

파이썬은 두 값을 맞바꾸는 내장 숏핸드 문법을 지원합니다. 임시 변수 없이 한 줄로 값을 교환할 수 있어 매우 편리합니다.

예제

value1 = 325
value2 = 976
print("value1 = ", value1)
print("value2 = ", value2)

value1, value2 = value2, value1

print("\nSwapped values")
print("value1 = ", value1)
print("values = ", value2)

출력 결과

value1 = 325
value2 = 976

Swapped values
value1 = 976
values = 325

5. 문자열 뒤집기

파이썬에서는 슬라이싱 문법만으로 문자열을 손쉽게 뒤집을 수 있습니다. [::-1]은 처음부터 끝까지 역순으로 요소를 가져오는 의미입니다. 숫자를 뒤집고 싶을 때는 문자열로 변환한 후 뒤집고, 다시 정수형으로 변환하면 됩니다.

예제

value1 = 'Hello! Welcome to tutorials point'
print(value1[::-1])

number = 934827165303
print(int(str(number)[::-1]))

출력 결과

tniop slairotut ot emocleW !olleH
303561728439

6. 함수에서 여러 값 반환하기

파이썬의 함수는 하나의 값만이 아니라 여러 값을 동시에 반환할 수 있습니다. 콤마(,)로 구분해 여러 값을 반환하면 튜플 형태로 전달되며, 언패킹하여 각 변수에 저장할 수 있습니다.

예제

def multiple():
    return 1*3, 2*3, 3*3, 4*3, 5*3

val1, val2, val3, val4, val5 = multiple()
print(val1, val2, val3, val4, val5)

출력 결과

3 6 9 12 15

7. for-in 루프에서 인덱스와 값 함께 출력하기

파이썬에서 for-in 루프를 사용하면 값만 얻을 수 있습니다. 하지만 인덱스까지 함께 필요하다면 enumerate() 함수를 사용하면 됩니다. enumerate()는 인덱스와 값을 함께 반환해 줍니다.

예제

bikes = ['thunderbird', 'Pulsar', 'R15', 'Duke']
for i, bike in enumerate(bikes):
    print(i, bike)

출력 결과

0 thunderbird
1 Pulsar
2 R15
3 Duke

8. 슬라이싱(Slice) 연산 활용하기

슬라이싱 연산은 리스트에서 원하는 항목들을 추출할 때 사용합니다. 시작 인덱스, 끝 인덱스, 스텝(step)을 조합하면 부분 추출, 건너뛰기, 역순 출력 등 다양한 작업을 할 수 있습니다.

예제

bikes = ['thunderbird', 'Pulsar', 'R15', 'Duke', 'S1000RR']
print(bikes[0:3])   # 처음 3개 요소 출력
print(bikes[::2])   # 한 칸씩 건너뛰며 출력
print(bikes[::-1])  # 리스트를 역순으로 출력
print(bikes[::-2])  # 역순으로 한 칸씩 건너뛰며 출력

출력 결과

['thunderbird', 'Pulsar', 'R15']
['thunderbird', 'R15', 'S1000RR']
['S1000RR', 'Duke', 'R15', 'Pulsar', 'thunderbird']
['S1000RR', 'R15', 'thunderbird']

9. 문자열을 리스트로 변환하기

입력받은 문자열을 다른 자료형으로 변환해야 하는 경우가 종종 있습니다. split()으로 문자열을 나눈 뒤 map()과 list()를 조합하면 문자열을 정수형 리스트로 손쉽게 변환할 수 있습니다.

예제

name = "3 34 67 12 78"
converted_list = list(map(int, name.split()))
print(converted_list)

출력 결과

[3, 34, 67, 12, 78]

10. 중첩 리스트를 하나의 리스트로 변환하기

파이썬에서는 다차원 리스트를 1차원 리스트로 평탄화(flatten)할 수 있습니다. 이때 itertools.chain.from_iterable() 메서드를 사용하면, 내부 리스트의 마지막 요소까지 순회하면서 모든 요소를 하나의 리스트로 합쳐 줍니다.

예제

import itertools

dob = [[3, 30], [6, 12], [8, 17]]
print(dob)

dates = list(itertools.chain.from_iterable(dob))
print(dates)

출력 결과

[[3, 30], [6, 12], [8, 17]]
[3, 30, 6, 12, 8, 17]

지금까지 살펴본 파이썬 트릭들은 코드의 가독성을 높이고 불필요한 반복 작업을 줄여줍니다. 문자 반복 출력, zip()을 활용한 병렬 순회, 값 교환, 슬라이싱, enumerate(), itertools 등의 기능을 적극 활용하면 더욱 파이썬답고 효율적인 코드를 작성할 수 있습니다.