繁体   English   中英

输出列表中的所有负数

[英]Output all negative numbers in a list

如何获取列表中所有负数的输出。 这是我尝试过的代码,但只能得到一个数字

#creat list using function
def Negative(List):    
      sum=0

      for i in List:
             if i < 0:
                 sum += i
                 return sum
#input and print list
inputData= input('enter numbers')

List = [float(i) for i in inputData.split(' ')]

print(Negative(List))
   def Negative(List):
       return [num for num in List if num<0]
   #input and print list
   inputData= input('enter numbers')
   List = [float(i) for i in inputData.split(' ')]
   print(Negative(List))

因为一个函数只能返回一次。

return语句终止函数的执行并将控制权返回给调用函数。 在紧接调用之后的那一点,将在调用函数中恢复执行。

所以在第8行,您将返回sum,然后存在。 它不会进行下一次循环迭代,因此它返回第一个数字,对于该条件是正确的。

解:

将每个iteraton结果存储在list,dict等地方,然后在函数末尾返回。

在这里您可以尝试:

#creat list using function
def Negative(List):
    neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)
    return neg_num
#input and print list
inputData= input('enter numbers ')


List = [float(i) for i in inputData.split(' ')]

print(Negative(List))

输出:

enter numbers 1 -2 3 -4 5 -6 7 -8
[-2.0, -4.0, -6.0, -8.0]

正如您所评论的:

如何计算从列表中获得的数字?

尝试这个 :

#creat list using function
def Negative(List):
    neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)
    return neg_num
#input and print list
inputData= input('enter numbers ')


List = [float(i) for i in inputData.split(' ')]

print(Negative(List))
print(len(Negative(List)))

输出:

enter numbers 1 -2 3 -4 5 -6 7 -8
[-2.0, -4.0, -6.0, -8.0]
4

或者,如果您想要在程序中尝试列出列表项的总和,则:

print(sum(Negative(List)))

其他:

您可以使用列表理解功能来简化循环逻辑:

neg_num=[i for i in List if i<0]  

与:

neg_num=[]
    for i in List:
        if i<0:
            neg_num.append(i)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM