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