Python 3.X:使用整数列表和值实现returnGreater()函数
问题描述:
该函数必须返回一个列表,其中包含大于函数中第二个数字的数字 它在执行功能时必须能够执行以下操作:Python 3.X:使用整数列表和值实现returnGreater()函数
returnGreater([1,2,3,4,5], 3)
[4,5]
returnGreater([-8,2,-4,1,3,-5],3)
[]
这是我有什么(我已经经历几次反复走了),但我得到一个类型错误的尝试使用int和列表之间的“>”符号:
def returnGreater (x,y):
"x:list(int) , return:list(int)"
#greater: int
greater = []
for y in x:
#x: int
if x > y:
x = greater
return greater
答
您使用的名称为y
两种不同nt在你的代码中的东西。它既是一个参数(要比较的数字)又是循环变量。你应该为其中的一个使用不同的名称。
我强烈建议挑选有意义的名称,因为这将使每个变量的含义变得更加清晰,并且使得它更不可能在两个不同的东西中使用相同的名称。举例来说,这里就是我会命名变量(摆脱这两个x
和y
的):
def returnGreater(list_of_numbers, threshold):
greater = []
for item in list_of_numbers:
if item > threshold:
greater.append(item)
return greater
您曾与线x = greater
,这并没有做什么有用的另一个问题(它取代了参考原始列表与向空greater
列表的引用,你应该append
荷兰国际集团的项目你只是相比greater
列表,而不是。
答
我建议filter
简单而优雅的方式。
def returnGreater(x, y):
return list(filter(lambda a:a>y, x))
表示使用lambda
筛选列表中的每个元素a
x
是否a
是否大于y
。
什么是你的问题?你似乎明白错误。 '如果x> y:'如果'x'是一个列表,'没有意义。 – Carcigenicate
这可以用'filter'来完成。 – Carcigenicate
我必须做到没有过滤器 – JorSAP