Python循环中没有if语句的情况下移动

问题描述 投票:0回答:1

为什么当我调用函数时这个循环为什么不移动?当我调用getnumber([2,3,"no","rain",5,0])时,它仅返回[2]。谢谢您的帮助!

def getnumber(a):
    for x in a:
        if type(x)==int:
            return [x]
python
1个回答
0
投票

因为您在找到第一个结果后立即打电话给return。如果使用['a',3]调用get_number,它将返回3。

如果要构建一个包含所有数字的列表,则需要做的是将它们放在列表中,并在最后返回它们。

def getnumber(a):
    r = []
    for x in a:
        if type(x)==int:
            r.append(x)

    return r

也可以简化为列表理解为:

def get_number(a)
   return [ value for value in a if type(value) == int ] 
© www.soinside.com 2019 - 2024. All rights reserved.