【发布时间】:2018-02-19 19:55:26
【问题描述】:
在使用 python reduce lambda 减少时,是否可以知道已经减少了多少项目?如果是,如何将这段代码转换成它?
例如:
numbers = [1,-1,2,-2,3,-3,4,-4,5,-5,6,-6]
new_list = []
for number in numbers:
if number > 0 and len(new_list) < 3:
new_list.append(number)
【问题讨论】:
-
我不明白。请使用
reduce举例说明您正在尝试执行的操作。 “减少”的元素数是列表中的元素数,或减一,具体取决于您要如何计算。 -
他想把
numbers减少到[1, 2] -
为什么需要reduce?
new_list = filter(numbers, lambda x: x > 0)[:3] -
过滤/减少都很好,但重点是,例如,如果我有一个包含 100 个数字、正数和负数的无序列表,并且我只想要前 5 个正数,我不想过滤整个列表然后对其进行切片。我想知道一种无需遍历整个列表即可获取它们的方法,只需获取前 5 个正数,然后返回
-
@AndersonLuiz 这就是梦龙的回答告诉你怎么做...(结合 islice 和 filter)
标签: python lambda filter reduce