我需要写一个all_gt(nums, n)
的函数,其中 nums 是一个数字列表, n 是一个数字,返回 nums 大于 n 。应保留元素的顺序。
我需要做的是以.append
格式写入,然后将结果初始化为空列表。
例如:
all_gt([1,2,3,4],4) => []
all_gt([2,3,4,5], 3) => [4,5]
这就是我所拥有的:
def all_gt(nums, n):
for i in nums:
if i > n:
return nums.append(i)
我知道我所做的是错的,我希望有人可以帮助我解决这个问题。
答案 0 :(得分:2)
return nums.append(i)
将值附加到列表中并返回None
。解决方法可以是
def all_gt(nums, n):
num2 = []
for i in nums:
if i > n:
num2.append(i)
return num2
您可以使用列表理解
def all_gt(nums, n):
return [i for i in nums if i > n]
答案 1 :(得分:2)
您可以使用filter
仅保留大于n
的元素:
>>> def all_gt(nums, n):
... return filter(lambda x: x > n, nums)
>>> all_gt([1, 2, 3, 4], 4)
[]
>>> all_gt([2, 3, 4, 5], 3)
[4, 5]
答案 2 :(得分:0)
只使用if条件应用列表理解就可以了解
nums = [ 1, 2, 3, 4, 5]
constraint = 3
filtered_result = [ x for x in nums if x > constraint]
将导致[4,5]