所以我想为列表的中位数,均值和众数创建函数。 该列表必须是用户输入。我将如何处理?谢谢。
答案 0 :(得分: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
如果这是您的家庭作业,我会给您一些提示:
平均值:遍历列表,计算元素总数,然后除以元素计数
中位数:首先,您必须按递增顺序对列表元素进行排序。然后找出列表长度是偶数还是奇数。如果为奇数,则返回中心元素。如果是偶数,则返回中心元素和该中心旁边的元素并计算其平均值。
模式:创建一个“帮助器”列表,该列表首先包含输入列表的不同元素。然后,创建一个具有一个参数的函数:一个数字-要计数-该数字在输入列表中的次数。在for循环中运行此功能,以提供不同的列表元素作为输入。在每次迭代时,将结果保存在一个元组中:一个元组由(元素值,元素计数)组成。毕竟,您应该有一个元组数组。当您拥有所有这些东西时,选择具有最大“元素计数”的元组并返回相应的“元素值”。
请注意,这些只是快速提示,对于根据您喜欢的正确算法创建自己的实现非常有用。这可能是开始使用算法和数据结构的好练习,希望您不要跳过它:)祝您好运!