在python中计算平均值和比较

2024-10-02 12:25:45 发布

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

我有一组值tgat代表一个邮政奇数的平均人数。这些是pcode1 = 239pcode2 = 245pcode3 = 210pcode4 = 217现在我被卡住了。我假设平均值是allpcode = 220。你知道吗

有没有一种方法可以用python编写代码,这样我就可以将每个pcode与总平均值进行比较?我要做的就是把pcode1allpcode进行比较,如果pcode1高于/低于allpcode,则显示pcode1的平均值,并说pcode1低于allpcode或高于allpcode。然后我想对所有其他pcodes重复:)

我想在屏幕上显示所有较低的平均值和所有较高的平均值。你知道吗

所以像pcode3和4的平均值比所有的pcode平均值低,pcode1和2比所有的p代码高。你知道吗

有没有可能因为我不知道如何/从哪里开始而创建这样的代码?你知道吗


Tags: 方法代码代表平均值邮政奇数人数pcode
2条回答

在这样的情况下,如果您经常要迭代一组值,通常最好使用一个listdict或其他集合变量,而不是一堆单独的变量。例如:

pcodes = {1: 239, 2: 245, 3: 210, 4: 217}

现在您可以编写如下代码:

pcodes = {1: 239, 2: 245, 3: 210, 4: 217}
allpcode = 220

for pcode, value in pcodes.items():
    if value < allpcode:
        print('code {} is lower than allpcode'.format(pcode))
    elif value > allpcode:
        print('code {} is higher than allpcode'.format(pcode))

如果你真的想拥有独立的变量,你必须做更多的工作,比如:

pcode1 = 239
pcode2 = 245
pcode3 = 210
pcode4 = 217
allpcode = 220

for i, value in enumerate((pcode1, pcode2, pcode3, pcode4)):
    if value < allpcode:
        print('code {} is lower than allpcode'.format(i + 1))
    elif value > allpcode:
        print('code {} is higher than allpcode'.format(i + 1))

如果只希望匹配值,则可以使用列表:

>>> pcode1 = 239
>>> pcode2 = 245
>>> pcode3 = 210
>>> pcode4 = 217
>>> lis = [pcode1, pcode2, pcode3, pcode4]
>>> allpcode= 220

>>> for i,x in enumerate(lis):
    if x < allpcode:
        print "pcode{} is less than {}".format(i+1,allpcode)
    elif x > allpcode:    
        print "pcode{} is greater than {}".format(i+1,allpcode)
...         
pcode1 is greater than 220
pcode2 is greater than 220
pcode3 is less than 220
pcode4 is less than 220

更好地使用字典:

因为变量只是python中对值的引用,所以您不能 访问变量名。如果你有很多pcodes,那么为每个变量定义一个变量是解决这个问题的糟糕方法,使用dict会更干净。你知道吗

#create dictionary with keys named pcode1, pcode2,...     
>>> dic = {'pcode1':239, 'pcode2':245, 'pcode3':210, 'pcode4':217}

>>> for k,v in dic.items():
    if v < allpcode:
        print "{} is less than {}".format(k ,'allpcode')
    elif v > allpcode:    
        print "{} is greater than {}".format(k,'allpcode')
...         
pcode3 is less than allpcode
pcode2 is greater than allpcode
pcode1 is greater than allpcode
pcode4 is less than allpcode

虽然字典不维护任何顺序,但您可能必须在这里collections.OrderedDictsorted才能按特定顺序获取键。你知道吗

相关问题 更多 >

    热门问题