TheAlgorithms-Python

Форк
0
/
average_median.py 
41 строка · 804.0 Байт
1
from __future__ import annotations
2

3

4
def median(nums: list) -> int | float:
5
    """
6
    Find median of a list of numbers.
7
    Wiki: https://en.wikipedia.org/wiki/Median
8

9
    >>> median([0])
10
    0
11
    >>> median([4, 1, 3, 2])
12
    2.5
13
    >>> median([2, 70, 6, 50, 20, 8, 4])
14
    8
15

16
    Args:
17
        nums: List of nums
18

19
    Returns:
20
        Median.
21
    """
22
    # The sorted function returns list[SupportsRichComparisonT@sorted]
23
    # which does not support `+`
24
    sorted_list: list[int] = sorted(nums)
25
    length = len(sorted_list)
26
    mid_index = length >> 1
27
    return (
28
        (sorted_list[mid_index] + sorted_list[mid_index - 1]) / 2
29
        if length % 2 == 0
30
        else sorted_list[mid_index]
31
    )
32

33

34
def main():
35
    import doctest
36

37
    doctest.testmod()
38

39

40
if __name__ == "__main__":
41
    main()
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.