簡體   English   中英

列表中大於平均值的數值

[英]Number values in a list greater than the average

Python:我無法弄清楚如何顯示出現在用戶給定列表中的計算平均值之上的數字列表以及該列表中超過 90 的任何數字。這是我迄今為止一直在做的工作。 平均計算單獨工作正常,這兩個函數的添加我無法解決。

from math import sqrt

def getNumbers():
    nums = []    

    xStr = input("Enter a number (<Enter> to quit) >> ")
    while xStr != "":
        x = eval(xStr)
        nums.append(x)   
        xStr = input("Enter a number (<Enter> to quit) >> ")
    return nums
    
def mean(nums):
    sum = 0.0
    for num in nums:
        sum = sum + num
    return sum / len(nums)

def grt_mean(mean):
    grt_mean_ls = nums []
    for num in nums:
        if num > mean:
            grt_mean_ls = nums
            nums.append(grt_mean_ls)
            
def above90(nums):
    above_list = nums[]
    for num in nums:
        if num >90:
            above_list = nums
            nums.append(above_list)  

def display(nums):
    print(nums)
      
def main():
    abmean = grt_mean(mean)
    ab90 = above(nums)
    data = getNumbers()
    xbar = mean(data)
    display(data)
    
    print("\nThe mean is", xbar)
    print("The numbers above 90 are: ab90")
    print("the numbers above the average are:")

main()

您可以使用列表理解來檢查每個值與您的平均值

def mean(nums):
    if len(nums) == 0:
        return 0.0
    return sum(nums) / len(nums)

def grt_mean(nums):
    m = mean(nums)
    return [i for i in nums if i > m]

例如

>>> nums = [1,2,3,4,5,6,7,8,9]
>>> mean(nums)
5.0
>>> grt_mean(nums)
[6, 7, 8, 9]

“90歲以上”的想法相同

def above90(nums):
    return [i for i in nums if i > 90]

>>> above90([88, 89, 90, 91, 92, 93])
[91, 92, 93]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM