【发布时间】:2019-03-17 00:55:39
【问题描述】:
基本上,我想知道什么是最有效的方法来查找值大于 n 的 python 列表中的元素。
我相信,最简单但效率不高的方法如下,
for i in range(len(theList)):
if theList[i] > n:
subList.append(theList[i])
此外,我们有如下单行for,
(subList for subList in theList if sublist > n)
(以上语法如有错误请指正)
最后,我们可以使用filter() 函数了,至少对我来说用起来并不愉快。
以上方法都是我所知道的方法。如果您知道任何更好的方法,请告诉我。否则,请从效率和运行时的角度解释哪个是最好的。
【问题讨论】:
-
为什么
filter不适合你? -
如果你只是想返回一个只有值大于
n的元素的列表,那么你的理解是一个很好的方法。如果你的意思是返回一个列表而不是一个生成器,你可以将它修改为[elem for elem in elems if elem > n] -
@benvc 我在询问运行时间的比较。提到的问题只是指出方法。
标签: python list runtime list-comprehension