当我运行以下代码时,我没有得到正确的答案。当它返回[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]))
答案 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_numbers
与if 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)