了解查找数字中位数的函数中的 return 语句

Understanding return statement in the function finding the median of numbers

我有这个功能:

def median(numbers):
    middle = int(len(numbers)/2)
    return numbers[middle]

print(median([4, 5, 6, 7, 8]))

这行的写法让我有点迷惑:

return numbers[middle]

如果我没记错的话 returns 输入数字在列表中的顺序。
有没有不同的方式来阅读这一行?

numbers[middle] 是列表的切片,其中 returns 位于 middle 位置的元素。它 returns 一个元素,位于 middle 索引处,从 0 开始。

这是评价:

middle = int(len(numbers)/2)
middle = int(5/2)
middle = int(2.5) # or int(2) depending on Python version
middle = 2

numbers[middle]
numbers[2]
6

middle 对应于 numbers 列表中间的索引。要找到列表的中位数,您可以尝试先使用 numbers.sort() 对其进行排序,如下所示:

def median(numbers):
    numbers.sort()
    middle = int(len(numbers)/2)
    return numbers[middle]

例如,如果 numbers = [1,2,3,4,5,6]len(numbers) 将计算为 6,将其减半为 3 以定义 middle 索引。鉴于此并且知道 python 列表起始索引为 0,行 return numbers[middle] 将 return 第四个元素,即 4.