반응형

 

sum(), min(), max(), eval() - 합, 최대값, 최소값, 문자열을 식으로

# sum()
result = sum([1, 2, 3, 4, 5])
print(result) # 15

# min(), max()
min_result = min(7, 3, 5, 2)
max_result = max(7, 3, 5, 2)
print(min_result, max_result) # 2 7

# eval()
result = eval("(3+5)*7")
print(result) # 56

sum()은 합, min()과 max()는 최소, 최대값을 추출한다.

eval()은 문자열로 된 식(코드)을 계산한다.

 

 

 

sorted() - 정렬된 새로운 리스트 반환

# sorted()
result = sorted([9, 1, 8, 5, 4])
reverse_result = sorted([9, 1, 8, 5, 4], reverse=True)
print(result) # [1, 4, 5, 8, 9]
print(reverse_result) # [9, 8, 5, 4, 1]

sorted()는 리스트(또는 다른 자료형)를 정렬한다.

reverse 인자는 내림차순 여부를 결정한다. (없으면 오름차순)

 

리스트의 sort() 메서드와 다른 점은, sorted() 함수는 새로운 리스트를 생성한다는 것이다.

 

 

 

 

 

itertools permutaions(), combinations() - 순열, 조합

from itertools import permutations
data = ['A', 'B', 'C']

result = list(permutations(data, 3))
print(result)
# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

permutations(list, n)은 list에서 순서를 고려하여 n개를 추출한 경우의 수를 생성해준다.

 

from itertools import combinations
data = ['A', 'B', 'C']

result = list(combinations(data, 2))
print(result)
# [('A', 'B'), ('A', 'C'), ('B', 'C')]

combinations(list, n)은 list에서 순서를 고려하지 않고 n개를 추출한 경우의 수를 생성해준다.

 

중복 순열과 중복 조합을 나타내는 product(list, n)과 combinations_with_replacement(list, n) 함수도 존재한다.

 

 

 

Counter - 성분의 개수를 세어주는 클래스

from collections import Counter

counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])

print(counter['blue']) # 3
print(counter['green']) # 1
print(dict(counter)) # 딕셔너리로 반환
# {'red': 2, 'blue': 3, 'green': 1}

Counter는 리스트에서 성분의 개수를 세어주는 클래스이다.

딕셔너리 형태로 각 성분의 개수를 반환할 수도 있다.

 

 

gcd() - 최대공약수

import math

# 최소공배수(LCM)을 구하는 함수
def lcm(a, b):
	return a * b // math.gcd(a, b)
    
a = 21
b = 14

print(math.gcd(21, 14)) # 7 (최대공약수)
print(lcm(21, 14) # 42 (최소공배수)

gcd(a, b)는 a와 b의 최대공약수를 구하는 메서드이다.

최소공배수는 = (두 수의 곱) / (최대공약수) 공식에 따라 위와 같이 구할 수 있다.

(공식을 간단히 증명하자면,

A와 B의 최대공약수를 GCD라 하고, A = a x GCD, B = b x GCD 라 하자.

AB = a x b x (GCD)^2 이다.

이때, a, b, GCD는 모두 서로소 이므로, 위의 식에서 양변을 GCD로 나누면

AB/GCD = a x b x GCD 이고, 이 값은 최소공배수가 된다.)

 

 

 

 

반응형

+ Recent posts