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

2024-04-25 21:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里试过几种不同的方法,但我还是迷路了。任何帮助都将不胜感激,这是我的代码。你知道吗

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

Tags: 方法代码inforinputifcountrange
2条回答

您可以使用列表理解轻松完成以下任务:

[a for a in your_list if a > sum(your_list) / len(your_list)]

如果你不熟悉列表的理解,这基本上是说:

for every element a in your_list, add a to a new list if it's greater than the sum of the list divided by its length (i.e. its mean). Return the new list.

例如,对于列表[1, 2, 3, 4, 5, 6, 7, 8, 9],它返回[6, 7, 8, 9]。你知道吗

在Python3.4中,可以使用statistics.mean和list comp:

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语句在做什么,但您可以在获得输入时创建一个if nums列表:

nums = [int(input("Enter Numbers ")) for _ in range(6)]
print([x for x in nums if x > mean(nums)])

相关问题 更多 >