删除列表

时间:2017-08-21 22:30:06

标签: python

当我运行以下代码时,我没有得到正确的答案。当它返回[4,4]时返回[4]。

def purify(y):
    new_numbers = []
    for x in y:
            if x%2 ==0:
                    new_numbers.append(x)
        return new_numbers

print(purify([4,5,5,4]))

5 个答案:

答案 0 :(得分:6)

您的缩进已关闭,请在for循环运行后放置返回

def purify(y):
    new_numbers = []
    for x in y:
            if x%2 ==0:
                    new_numbers.append(x)
    return new_numbers

答案 1 :(得分:3)

使用一些优雅的表达式,例如列表理解和if之类的结合

def purify(y):
    return [x for x in y if x%2 == 0]

答案 2 :(得分:2)

使用Python时应该小心缩进,因为下面的代码很好,但return new_numbers上的缩进存在问题。

return new_numbersif condition一致,因为for loop仅运行一次并返回第一个4。如果您使用return缩进for loop语句,它将完美无缺。

def purify(y):
    new_numbers = []
    for x in y:
        if x%2 ==0:
            new_numbers.append(x)
    return new_numbers

print(purify([4,5,5,4]))

答案 3 :(得分:1)

您只需一行即可完成此操作:

feature_type  = forms.TypedChoiceField(
    choices = formfields.FeatureType,
    widget = forms.RadioSelect(attrs={
        'style': 'display: inline-block'
    })
)

答案 4 :(得分:1)

只需使用lamda:

def purify(y):
 filter(lambda i: not i%2==0, y)