python-3.x - 它什么都不做,但我认为算法是真的你能告诉我错误在哪里吗?
问题描述
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]
解决方案
我不知道您为什么要以复杂的方式执行此操作,一个简单的列表组合可以在这里完成工作:
def listUnder(inList, bound):
return [i for i in inList if i < bound]
除此之外,将输入列表附加到函数内的列表会导致嵌套列表,这可能是错误的根源。此外,您在 for 循环中返回一个列表元素,您怎么能期望得到一个列表?
推荐阅读
- vba - 如何从用户窗体创建和保存新工作簿?
- api - 流星如何通过rest api将图像上传到aws s3?
- python - Python(spyder)跳过函数中的代码行?
- apache-spark - 如何将一些 pyspark 数据框的列转换为具有列名的 dict 并将它们组合成 json 列?
- c++ - 如何对以下代码进行同步处理?
- awk - 使用 grep -o 或 sed (或其他)替换除模式之间的字符
- sql - 删除订单负值
- maven - java.lang.OutOfMemoryError:我运行 maven 测试时的 Java 堆空间
- typo3 - 内容回退未按预期工作
- html - Angular 客户指令 css 折叠子菜单