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

时间:2018-08-23 11:05:58

标签: python list return-value median

我有这个功能:

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

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

这行的写作风格让我有些困惑:

return numbers[middle]

如果我没记错的话,它会在列表中返回输入数字的顺序。
有没有其他方法可以读取此行?

3 个答案:

答案 0 :(得分:1)

apigeetool createProduct \ --approvalType "auto" \ --environments ${APIGEE_ENVIRONMENT} \ --proxies income_prediction \ --productName "income_prediction_trial" \ --productDesc "Free trial API for income prediction." \ --quota 10 \ --quotaInterval 1 \ --quotaTimeUnit "day" 是列表的切片,它将返回位于Error: Create Product failed with status code 403 位置的元素。它返回一个元素,该元素从0开始在numbers[middle]索引处。

答案 1 :(得分: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

答案 2 :(得分:0)

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]将返回第四个元素,即4。