如何在列表中显示大于均值的数字?
我尝试了几种不同的方法,但现在完全不知道该怎么办了。任何帮助都非常感谢,这里是我的代码。
numL = [];
for count in range (6):
num = input("Enter Numbers ");
if int(num) <= -999:
print("Sentinel value was entered")
print(int(num) > sum(int(num))/ float(len(int(num))))
2 个回答
0
你可以用列表推导式来轻松实现这个功能:
[a for a in your_list if a > sum(your_list) / len(your_list)]
如果你对列表推导式不太了解,简单来说就是:
对你列表中的每一个元素
a
,如果a
大于列表的总和除以列表的长度(也就是平均值),就把a
加到一个新列表里。最后返回这个新列表。
举个例子,对于列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]
,这个操作会返回 [6, 7, 8, 9]
。
0
在Python 3.4中,你可以使用statistics.mean这个功能,配合一个列表推导式来处理数据。
from statistics import mean
l = [1,2,3,4,5,6,7,8,9,10]
print([x for x in l if x > mean(l)])
[6, 7, 8, 9, 10]
我不太明白你那个if语句是干嘛的,但你可以在获取输入的时候直接创建一个名为nums的列表。
nums = [int(input("Enter Numbers ")) for _ in range(6)]
print([x for x in nums if x > mean(nums)])