在python中计算平均值并进行比较

在python中计算平均值并进行比较,python,compare,average,Python,Compare,Average,我有一组值tgat代表平均一个地区的人数。它们是pcode1=239,pcode2=245,pcode3=210和pcode4=217现在是我卡住的位置。我假设平均值为allpcode=220 有没有一种方法可以用python编写代码,这样我就可以将每个单独的pcode与总平均值进行比较?我想做的就是说将pcode1与allpcode进行比较,如果pcode1高于/低于allpcode显示pcode1的平均值,并说pcode1低于allpcode或高于allpcode。然后我想对所有其他PCOD

我有一组值tgat代表平均一个地区的人数。它们是
pcode1=239
pcode2=245
pcode3=210
pcode4=217
现在是我卡住的位置。我假设平均值为
allpcode=220

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

我想在屏幕上显示所有较低的平均值和所有较高的平均值

所以像pcode 3和4这样的平均值比所有的pcode平均值都低,pcode 1和2比所有的p代码都高


因为我不知道如何/从哪里开始,所以有可能创建这样的代码吗

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

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))
pcodes={1:239,2:245,3:210,4:217}
allpcode=220
对于pcode,pcodes.items()中的值:
如果值所有PCODE:
打印('code{}高于allpcode'。格式(pcode))

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

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
allpcode=220
对于i,枚举中的值((pcode1、pcode2、pcode3、pcode4)):
如果值所有PCODE:
打印('code{}高于allpcode'。格式(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
虽然字典不维护任何顺序,但您可能必须在此处对集合进行排序,以按特定顺序获取关键字。

您的问题标题是“计算平均值”。你可以用
(pcode1+pcode2+pcode3+pcode4)/4来计算你的值的平均值,或者,更好的方法是,如果你把它们放入
dict
中,就像我的回答中那样,
sum(pCODE.values())/len(pCODE)
。但你会得到227.75,而不是你假设的220。