Python 函数-无序类型列表()>;int() 值=[] def posNumAvg(值): 平均值=0 总和=0 如果n的值大于0: 总和=总和+n 返回和/长度(值)

Python 函数-无序类型列表()>;int() 值=[] def posNumAvg(值): 平均值=0 总和=0 如果n的值大于0: 总和=总和+n 返回和/长度(值),python,list,integer,comparison,Python,List,Integer,Comparison,给了我一个信息: 无序类型:list()>int() 如何解决此问题,以便可以将列表中的每个值与0进行比较?如果值中的n>0:有一大堆问题: values>0将列表与int进行比较,这是Python中无法做到的 n in values>0正在将未定义的变量与断开的表达式进行比较(您也不能这样做) average从不使用,这不是问题,但可能不是您想要的 试试这个: def posNumAvg(值): 返回和(如果n>0,则n表示n个值)/len(值) Python有一个内置的sum函数,您

给了我一个信息:

无序类型:list()>int()

如何解决此问题,以便可以将列表中的每个值与0进行比较?

如果值中的n>0:
有一大堆问题:

  • values>0
    将列表与int进行比较,这是Python中无法做到的
  • n in values>0
    正在将未定义的变量与断开的表达式进行比较(您也不能这样做)
  • average
    从不使用,这不是问题,但可能不是您想要的
试试这个:

def posNumAvg(值):
返回和(如果n>0,则n表示n个值)/len(值)

Python有一个内置的
sum
函数,您可以使用它来获取iterable(在本例中为generator对象)中所有项的总和,然后我们将其除以原始值列表的长度。

欢迎使用堆栈溢出。请尽快阅读该页面,并用主要语言标记您的问题(我认为这里是Python,但如果我错了,请编辑标记)。假设它是Python,您看起来好像在尝试在
if
语句中进行某种列表理解,无论如何,这应该是一个
for
循环。返回并阅读手册。您不能这样做:'如果值中的n>0:'值的
外观如何以及预期的输出是什么?我想输入一个命令,将“值”列表中的负数之和除以“值”列表中的负数,换句话说:负数平均值=[]def numList():while-9999 not in values:x=int(输入(“输入任意数量的数字或-9999退出:”)值。追加(x)值。删除(-9999)返回值def NonPosAvg(值):#键2返回和(如果n>0,则n代表n值)/len(值)打印(“输入的数字列表为:”,numList())显示(平均值={}显示)平均值['AvgPosAvg:']=NonPosAvg(values)print(Display_Avg)好的,我已经让它工作了,但是拿你的精确代码来说,我怎么能只除以“values”列表中的负数(而不是列表中的项目总数)?@rustyh.
len(如果n<0,则n代表n)
提供列表中负数的数量。将
len
替换为
sum
以获得负数的总和。刚刚尝试过,错误如下:回溯(最近一次调用):文件“/Users/user/Desktop/Assignment6Part2.py”,第26行,在Display_Avg['NonPosAvg:']=NonPosAvg(values)文件中“/Users/user/Desktop/Assignment6Part2.py”,第15行,在非OSAVG返回和中(如果n<0,则n代表n值)/len(如果n<0,则n代表n值)TypeError:generator类型的对象没有len()@rustyh.ah,对不起应该是len([n如果n<0,则n代表n值))