Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

매우 유용한 한 줄짜리 Python 코드 20개

권현욱(엑셀러) 2023. 12. 26. 20:00
반응형

30초 이내로 쉽게 배울 수 있는 파이썬 코드 20개를 소개합니다. 이 짧은 스니펫(snippet) 코드는 시간을 절약하고 코드를 깔끔하고 읽기 쉽게 만들어줍니다.

 

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

 

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.


  • 원문: 20 extremely useful single-line Python codes
  • URL: https://medium.com/@hafizabdullaha93/20-extremely-useful-single-line-python-codes-de44928a1a3b

1. 한 줄 For Loop

For 루프는 여러 줄로 구성된 명령문이지만 Python에서는 목록 이해 방법을 사용하여 한 줄에 for 루프를 작성할 수 있습니다. 예를 들어, 250보다 작은 값을 필터링하려면 다음 코드 예제를 살펴보세요.

#For loop in one line
mylist = [200, 300, 400, 500]
#Single line For loop
result = [] 
for x in mylist: 
    if x > 250: 
        result.append(x) 
print(result) # [300, 400, 500]

#One-line code way
result = [x for x in mylist if x > 250] 
print(result) # [300, 400, 500]

 

2. 한 줄 While Loop

두 가지 다른 방법을 시연하여 한 줄에서 While 루프 코드를 사용하는 방법을 보여줍니다.

#Method 1 Single Statement   
while True: print(1) #infinite 1

#Method 2 Multiple Statements  
x = 0   
while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5

 

3. 한 줄 If Else 문

IF Else 문을 한 줄로 작성하려면 삼항 연산자를 사용합니다. 삼항 구문은 '[on true] if [expression] else [on false]'입니다. 한 줄짜리 if-else 문에 삼항 연산자를 사용하는 방법을 명확하게 설명하기 위해 아래 샘플 코드에 3가지 예를 표시했습니다. Elif 문을 사용하려면 여러 삼항 연산자를 사용해야 합니다.

#if Else In a single line.  
#Example 1 if else  
print("Yes") if 8 > 9 else print("No") # No 

#Example 2 if elif else   
E = 2   
print("High") if E == 5 else print("数据STUDIO") if E == 2 else   
print("Low") # Data STUDIO   
   
#Example 3 only if  
if 3 > 2: print("Exactly") # Exactly

 

4. 한 줄로 딕셔너리 병합

이 한 줄짜리 코드 세그먼트는 한 줄의 코드를 사용하여 두 개의 사전을 하나로 병합하는 방법을 보여줍니다. 여기에서는 사전을 병합하는 두 가지 방법을 제시했습니다.

# Merging dictionaries in one line  
d1 = { 'A': 1, 'B': 2 }   
d2 = { 'C': 3, 'D': 4 }  

#Method1   
d1.update(d2)   
print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}  

#Method2   
d3 = {**d1, **d2}   
print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}

 

5. 한 줄 함수

한 줄에 함수를 작성하는 방법에는 두 가지가 있습니다. 첫 번째 방법에서는 삼항 연산자 또는 한 줄 루프 방법과 동일한 함수 정의를 사용합니다. 두 번째 방법은 람다를 사용하여 함수를 정의하는 것입니다. 보다 명확한 이해를 위해 아래 예제 코드를 살펴보세요.

#Function in one line  
#Method1
def fun(x): return True if x % 2 == 0 else False   
print(fun(2)) # False  

#Method2
fun = lambda x : x % 2 == 0   
print(fun(2)) # True   
print(fun(3)) # False

 

6. 한 줄 재귀

이 한 줄 코드 조각은 한 줄에서 재귀를 사용하는 방법을 보여줍니다. 한 줄짜리 함수 정의와 한 줄짜리 if-else 문을 사용하겠습니다. 다음은 피보나치 수열을 찾는 예입니다.

# Single-line recursion 
#Fibonaci Single-line recursion example  
def Fib(x): return 1 if x in {0, 1} else Fib(x-1) + Fib(x-2)  
print(Fib(5)) # 8  
print(Fib(15)) # 987

 

7. 한 줄 배열 필터링

Python 목록을 사용하여 한 줄의 코드로 배열을 필터링하는 것은 목록 이해 방법을 사용하여 수행할 수 있습니다. 짝수 목록을 필터링하는 예가 표시됩니다.

# Filtering arrays in a single line  
mylist = [2, 3, 5, 8, 9, 12, 13, 15]  
#Normal way  
result = []   
for x in mylist:   
    if x % 2 == 0:   
        result.append(x)  
print(result) # [2, 8, 12]  
# One-line method  
result = [x for x in mylist if x % 2 == 0]   
print(result) # [2, 8, 12]

 

8. 한 줄 예외 처리

Python에서 런타임 오류를 처리하기 위해 예외 처리를 사용합니다. Try Except 문을 한 줄로 작성할 수 있습니다. exec() 문을 사용하면 됩니다.

# Exception handling in one line  
#Original method  
try:  
    print(x)  
except:  
    print("Error")  
#Single line way  
exec('try:print(x) \nexcept:print("Error")') # Error

 

9. 한 줄로 리스트를 딕셔너리로 변환

enumerate() 함수를 사용하여 한 줄로 목록을 사전으로 변환합니다. 목록을 enumerate()에 전달하고 dict()를 사용하여 최종 출력을 사전 형식으로 변환합니다.

# Dictionary in one line  
mydict = ["John", "Peter", "Mathew", "Tom"]  
mydict = dict(enumerate(mydict))  
print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}

 

10. 한 줄 다중 변수

Python에서는 한 줄에 여러 변수 할당이 가능합니다. 다음 예제 코드는 이를 수행하는 방법을 보여줍니다.

#Multiple variable assignments in one line.  
#Single-line method  
x = 5   
y = 7   
z = 10   
print(x , y, z) # 5 7 10  
#Single line way  
a, b, c = 5, 7, 10   
print(a, b, c) # 5 7 10

 

11. 한 줄로 값 바꾸기

스와핑은 프로그래밍에서 재미있는 작업이며, 스와핑된 값을 저장하려면 항상 세 번째 변수 이름인 temp가 필요합니다. 이 한 줄 코드 조각은 임시 변수 없이 한 줄에서 값을 바꾸는 방법을 보여줍니다.

#Swap values in one line  
#Single-line method 
v1 = 100  
v2 = 200  
temp = v1  
v1 = v2   
v2 = temp  
print(v1, v2) # 200 100  
# One-line value swapping 
v1, v2 = v2, v1   
print(v1, v2) # 200 100

 

12. 한 줄 정렬

정렬은 프로그래밍에서 일반적인 문제이며 Python에는 이 정렬 문제를 해결하기 위한 여러 가지 방법이 내장되어 있습니다. 아래 코드 예제에서는 한 줄로 정렬하는 방법을 보여줍니다.

# Sort in one line  
mylist = [32, 22, 11, 4, 6, 8, 12]   
# Method1
mylist.sort()   
print(mylist) # # [4, 6, 8, 11, 12, 22, 32]  
print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]

 

13. 한 줄로 파일 읽기

명령문이나 일반적인 읽기 방법을 사용하지 않고도 한 줄로 파일을 읽을 수 있습니다.

#Reading a file in one line  
#Single-line method 
with open("data.txt", "r") as file:   
    data = file.readline()   
    print(data) # Hello world  
#Single line way  
data = [line.strip() for line in open("data.txt","r")]   
print(data) # ['hello world', 'Hello Python']

 

14. 한 줄 클래스

클래스는 여러 줄로 이루어지는 작업입니다. 하지만 Python에서는 한 줄의 코드로 클래스 기능을 사용하는 방법이 있습니다.

# One-line class  
#Regular way  
class Emp:   
    def __init__(self, name, age):   
        self.name = name   
        self.age = age  
        emp1 = Emp("a44", 22)   
print(emp1.name, emp1.age) # 
#Single line way  
#Method 1 Lambda with Dynamic Attributes 
  
Emp = lambda:None; Emp.name = "a44"; Emp.age = 22  
print(Emp.name, Emp.age) # 
  
#Method 2 
from collections import namedtuple  
Emp = namedtuple('Emp', ["name", "age"]) ("a44", 22)   
print(Emp.name, Emp.age)

 

15. 한 줄 세미콜론

이 코드 조각에서 세미콜론을 사용하여 한 줄에 여러 줄의 코드를 작성하는 방법을 보여줍니다.

# One-line semicolon 
# exsample 1   
a = "Python"; b = "Programming"; c = "languages"; print(a, b, c)  
# print
# Python Programming languages

 

16. 한 줄 인쇄

이것은 중요한 스니펫은 아니지만 작업을 수행하기 위해 루프를 사용할 필요가 없을 때 유용할 수 있습니다.

# One line print
#Single-line method
for x in range(1, 5):  
    print(x) # 1 2 3 4  
#Single line way  
print(*range(1, 5)) # 1 2 3 4  
print(*range(1, 6)) # 1 2 3 4 5

 

17. 한 줄 map 함수

맵 함수는 각 요소에 함수를 적용하는 유용한 고차 함수입니다. 다음은 한 줄의 코드에서 지도 기능을 사용하는 방법에 대한 예입니다.

#One line map function 
print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10])))  
# print
# [7, 8, 9, 10, 11, 12]

 

18. 리스트의 첫 번째 행에서 Mul 요소 삭제

del 메소드를 사용하면 수정 없이 한 줄의 코드로 List의 여러 요소를 삭제할 수 있습니다.

# Deleting the Mul elements from the first row of the list
mylist = [100, 200, 300, 400, 500]  
del mylist[1::2]  
print(mylist) # [100, 300, 500]

 

19. 한 줄 프린트 패턴

동일한 패턴을 인쇄하기 위해 더 이상 for 루프를 사용할 필요가 없습니다. print 문과 별표(*)를 사용하면 한 줄의 코드에서 동일한 작업을 수행할 수 있습니다.

# One line print pattern#   
# Single-line method  
for x in range(3):  
    print('😀')  
# print
# 😀 😀 😀  
#Single line way  
print('😀' * 3) # 😀 😀 😀   
print('😀' * 2) # 😀 😀   
print('😀' * 1) # 😀

 

20. 한 줄의 코드로 특정 범위의 소수 찾기

이 코드 조각은 한 줄의 코드를 작성하여 범위 내의 소수(prime number, 솟수)를 찾는 방법을 보여줍니다.

# Find primes in a range in a single line of code
print(list(filter(lambda a: all(a % b != 0 for b in range(2, a)),  
                  range(2,20))))  
# print
# [2, 3, 5, 7, 11, 13, 17, 19]