首页 > 解决方案 > 它什么都不做,但我认为算法是真的你能告诉我错误在哪里吗?

问题描述

def listUnder(inList,bound):
a=[]
a.append(inList)
b=[]
b.append(bound)
for i in a:
if i<b:
return i
print(listUnder([34,10,9,5,44,1],10))

编写一个函数 listUnder(inList, bound),它接受两个输入参数 inlist(整数列表) 和 bound (int),并返回一个列表,该列表由 inlist 中严格小于 bound 的所有元素组成,其顺序与它们在 inlist 中出现的顺序相同.

输出: print(listUnder([34, 10, 9, 5, 44, 1],10)) [9, 5, 1]

标签: python-3.x

解决方案


我不知道您为什么要以复杂的方式执行此操作,一个简单的列表组合可以在这里完成工作:

def listUnder(inList, bound):
    return [i for i in inList if i < bound]

除此之外,将输入列表附加到函数内的列表会导致嵌套列表,这可能是错误的根源。此外,您在 for 循环中返回一个列表元素,您怎么能期望得到一个列表?


推荐阅读