所以我想为列表的中位数、平均值和众数创建函数。该列表必须是用户输入。我该怎么办?谢谢。
1 回答
您不必为中值、均值、众数创建函数,因为它们已经实现并且可以在 Python 中使用Numpy和Scipy库显式调用。实施这些功能将意味着“重新发明轮子”,并可能导致错误并需要时间。随意使用库,因为在大多数情况下,它们都经过测试并且可以安全使用。例如:
import numpy as np
from scipy import stats
mylist = [0,1,2,3,3,4,5,6]
median = np.median(mylist)
mean = np.mean(mylist)
mode = int(stats.mode(mylist)[0])
要获取用户输入,您应该使用 input()。见https://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/io.html
如果这应该是你的作业,我会给你一些提示:
mean:遍历列表,计算元素总和除以元素计数
中位数:首先,您必须按升序对列表元素进行排序。然后找出列表长度是偶数还是奇数。如果奇数,则返回中心元素。如果是偶数,则返回中心元素和中心旁边的元素并计算它们的平均值。
mode:首先创建一个“帮助”列表,其中包含输入列表的不同元素。然后,创建一个具有一个参数的函数:一个数字 - 要计算 - 它在输入列表中的次数。在 for 循环中运行此函数,提供不同的列表元素作为输入。在每次迭代中,将结果保存在一个元组中:一个元组由(元素值,元素计数)组成。毕竟你应该有一个元组数组。当你拥有所有这些东西时,选择具有最大“元素计数”的元组并返回相应的“元素值”。
请注意,这些只是快速提示,可用于根据您喜欢的正确算法创建自己的实现。这可能是开始学习算法和数据结构的一个很好的练习,我希望你不要跳过它:)祝你好运!