用Python计算整数列表中的负值?

r6vfmomb  于 2023-02-28  发布在  Python
关注(0)|答案(3)|浏览(172)

我遇到this CodingBat问题:
给定一个整数列表,返回负值的计数。

count_negative([-1, -2, -3]) → 3
count_negative([2, 2, 2, 2, 2]) → 0
count_negative([-5, -3, 4]) → 2

为什么这段代码不能正确运行?

def count_negative(list):
  for value in list:
      total = 0
      total += value
      return total
8nuwlpux

8nuwlpux1#

每次循环后都要将total设置回零,将其置于循环之外:
同样,函数在第一次循环后会中断,因为函数返回了一些东西后就会中断,同样把return total放在循环之外:

total = 0
for value in list:
    total += value
return total

我看不出这将如何确定一个数是否为负数。你可以在循环中使用if语句。

if value < 0:
    total += 1

或者你可以使用列表解析:

sum(1 for i in lst if i < 0)

顺便说一句,千万不要命名list。它会覆盖内置的。我很惊讶你的问题做到了这一点。

iq0todco

iq0todco2#

无循环和条件:

>>> lst = [1, -2, 3, -1, 2]
>>> neg = str(lst).count('-')
>>> neg
2
mwkjh3gx

mwkjh3gx3#

将其转换为pd.DataFrame,然后使用df[df>0].count()/len(df)

相关问题