def get_stats(numbers):
minimum = min(numbers)
maximum = max(numbers)
count = len(numbers)
average = sum(numbers) / count
sorted_numbers = sorted(numbers)
middle = count // 2
if count % 2 == 0:
lower = sorted_numbers[middle - 1]
upper = sorted_numbers[middle]
median = (lower + upper) / 2
else:
median = sorted_numbers[middle]
return minimum, maximum, average, median, count
minimum, maximum, average, median, count = get_stats(lengths)
print(f'최소 길이: {minimum}, 최대 길이: {maximum}')
print(f'평균: {average}, 중앙값: {median}, 개수: {count}')
>>>
최소 길이: 60, 최대 길이: 73
평균: 67.5, 중앙값: 68.5, 개수: 10
- 단점
- 모든 반환값이
int
라 순서를 혼동하기 쉬움 - 가독성 떨어짐
- 함수 호출과 반환 값을 언패킹하는 부분이 길다
- 여러 가지 방법으로 줄을 바꿀 수 있음
- 모든 반환값이
- 3개까지는 통용되는 순서가 있음
- 따로 변수에 넣는 구문일 수도
- 두 값을 변수에 넣고 나머지 모든 값을 한 변수에 넣는 구문일 수도 있음
-
경량 클래스(lightweight class)
-
namedtuple
사용(값 초기화 이후 변경 불가, immutable)from collections import namedtuple Color = namedtuple("Color", ["red", "green", "blue"]) color = Color(55, 155, 255) print(color.red) >>> 55