Python 列表函数的困难
编写一个名为“counting”的函数,该函数将数字列表作为参数,并返回输入中介于29.88和48.05之间的数值(不包括这些端点)。(我的代码如下)Python 列表函数的困难,python,Python,编写一个名为“counting”的函数,该函数将数字列表作为参数,并返回输入中介于29.88和48.05之间的数值(不包括这些端点)。(我的代码如下) def计数(数字): 总和=0 对于x的数字: 如果(29.88
def计数(数字):
总和=0
对于x的数字:
如果(29.88
如何返回输入中的值数而不是输入的第一个值?您的返回语句缩进太深;您应该在for循环之后返回它。也不是一个好名字,因为它是一个内置函数,您可以覆盖它 您应该将
1
添加到总和(您正在计数)中,而不是x
本身
您也可以使用内置功能尝试此操作:
def计数(数字):
返回和(数量为x时为29.88
(这实际上是
sum的缩写(如果29.88
,因为True
基本上是1
,而False
基本上是0
)。或者与您的类似:
def counting(number):
c = 0
for x in number:
if 29.88 < x < 48.05:
c += 1
return c
您还可以在列表中使用,只保留给定函数计算结果为true的元素
def counting(number):
return len(list(filter(lambda x: 29.88 < x < 48.05, number)))
def计数(数字):
返回len(列表(过滤器(λx:29.88
您的返回
在循环中,这将使它在一次迭代中返回。将其降低一级,使其处于for循环之外。此外,系统不会询问数字的总和,而是询问它们的计数。求和时,将元素本身添加到累积总数中。当你计数时,你会添加什么?将数字附加到列表中并返回列表的长度。对不起,误读了你所做的。所有计数都正确(尽管布尔值之和对新手来说可能有点难)@vash_the_stampedenumber
是一个列表,因此应该是可编辑的。@vash_the_stampedenumber
是一个列表,因此应该是可编辑的。@ElyFialkoff更正了,我错了
def counting(number):
c = 0
for x in number:
if 29.88 < x < 48.05:
c += 1
return c
def counting(number):
return len([29.88 < x < 48.05 for x in number])
def counting(number):
return len(list(filter(lambda x: 29.88 < x < 48.05, number)))