본문 바로가기
프로그래밍 언어/Python

[Python] 파이썬의 유용한 기본 내장 함수

by Kallunar 2023. 10. 30.

1. sum()

  • iterable 객체를 매개변수로 받아 그 원소들의 합을 구함
result = sum([1, 2, 3, 4, 5]) #15

 

2. min(), max()

  • 파라미터로 받은 요소들 중 최소, 최대값을 구함.
result = min(1, 2, 3, 4) # 1
result = max(1, 2, 3, 4) # 4

 

3. eval()

  • 수식이 문자열 형식으로 들어왔을 때, 해당 수식을 계산
result = eval("(3+5) * 7") # 56

 

4. sorted()

  • iterable 객체, 정렬 기준을 매개변수로 받아 정렬
  • 정렬 기준을 제시하지 않으면 기본적으로 오름차순 정렬
# 오름차순 정렬(default)
result = sorted([2, 1, 5, 9, 3]) # [1, 2, 3, 5, 9]

# 내림차순 정렬
result = sorted([2, 1, 5, 9, 3], reverse=True) # [9, 5, 3, 2, 1]

# 정렬 기준 설정하기 - 정렬할 원소에 대한 함수 정의 필요
# lambda 함수를 이용하여 정렬 기준 지정
data = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(data, key = lambda x : x[1], reverse = True)
# [('이순신', 75), ('아무개', 50), ('홍길동', 35)]

# 다중 조건 정렬하기
# x[1] 값 기준으로 오름차순 정렬, x[1] 값이 같으면 x[0] 값 기준으로 내림차순 정렬
data = [(91, 35), (11, 50), (63, 50)]
result = sorted(data, key = lambda x : (x[1], -x[0]))
# [(91, 35), (63, 50), (11, 50)]

 

5. join()

  • '구분자'.join(iterable 객체) 형태로 사용
  • 매개변수로 받은 iterable 객체의 원소들을 구분자로 구분하여 합쳐서 문자열로 만들어주는 함수
str = '_'.join('string') # s_t_r_i_n_g

# 구분자를 아무것도 지정하지 않으면 그냥 합쳐줌
str = ''.join(['a', 'b', 'c']) # abc

 

6. reversed()

  • iterable 객체를 매개변수로 받아 그것을 거꾸로 뒤집은 결과를 반환하는 함수
  • 반환 타입은 'reversed class' 타입이므로 join 함수를 이용해 문자열로 바꾸어 활용한다.
str = 'kael'
result = reversed(str)
type(result) # <class 'reversed'>

# 문자열로 변경하기 위해 join 함수 사용
reversed_str = ''.join(result) # leak

 

7. 기본 내장 함수 사용 시 주의할 점

  • 앞서 기본 내장 함수의 이름을 변수명으로 사용했거나 새로 정의한 함수의 이름으로 사용했다면, 해당 키워드에 대한 정의가 변경되므로 해당 파일 내에서는 더 이상 기본 내장 함수의 기능을 사용할 수 없게 됨에 주의한다.
sum = 0
sum([1, 2, 3, 4, 5])
# TypeError: 'int' object is not callable


'sum'을 변수명으로 사용하고 0으로 초기화 했으므로
기존의 내장 함수 기능은 사라졌다.

 

def sum(a, b):
  return a * b
  
 # result = sum([1, 2, 3, 4, 5])
 # TypeError: sum() missing 1 required positional argument: 'b'
 
 result = sum(3, 5) # 15


새로운 정의에 따르면
이제 sum 함수는 두 개의 매개 변수를 요구하므로
기존의 방식대로 사용할 수 없으며,
결과도 정의된 대로 곱셈 결과를 반환하고 있음을 알 수 있다.

댓글