如何在列表中显示大于均值的数字?

-1 投票
2 回答
1010 浏览
提问于 2025-05-01 09:58

我尝试了几种不同的方法,但现在完全不知道该怎么办了。任何帮助都非常感谢,这里是我的代码。

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)])

撰写回答