如何在python 3中打印均值,中位数和模式

时间:2017-07-12 13:31:22

标签: python arrays python-3.x statistics

我是python编程的新手,我的代码中出现运行时错误。任何帮助表示赞赏。

import statistics

tc = int(input())

while tc > 0:
    n = int(input())
    arr = input()
    l = list(map(int, arr.split(' ')))
    print("{} {} {}".format(statistics.mean(l), statistics.median(l), statistics.mode(l)))
    tc = tc - 1

错误

StatisticsError: no unique mode; found 2 equally common values

输入格式

第一行由一个整数T组成,表示测试用例的数量。 每个测试用例的第一行由表示数组大小的单个整数N组成。 下面的行由N个空格分隔的整数组成,表示数组中的元素。

输出格式

对于每个测试用例,输出一行包含三个分隔的整数,表示数组的均值,中值和模式

样本输入

1
5
1 1 2 3 3

样本输出

2 2 1

2 个答案:

答案 0 :(得分:2)

您可以添加mode所包围的变量try...except,如果statistics有错误,请将模式设为different way

try:
  mode=statistics.mode(l)
except:
  mode=max(set(l),key=l.count)
print("{} {} {}".format(statistics.mean(l), statistics.median(l), mode))

答案 1 :(得分:0)

你好Kartik Madaan,

试试这段代码,

使用Python 3.X

import statistics
from statistics import mean,median,mode

tc = int(input())

while tc > 0:
    n = int(input())
    arr = input()
    l = list(map(int,arr.split()))
    mod = max(set(l), key=l.count)
    print(int(mean(l)),int(median(l)),mod)
    tc = tc - 1

我希望我的回答很有帮助 如果有任何疑问请评论。