本文介绍了Python:如何以合理的性能仅获取正数的嵌套int列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码可能很慢:

onlyPositives = map ( (lambda mylist: [elem for elem in mylist if elem > 0]) , myintlist )

什么是快速的方法?(用于100万个大小为50整数的子列表).

what is a fast way to do that?(For 1 million sub lists of size 50 ints).

推荐答案

单独定义函数而不是使用lambda,并使用列表推导而不是map():

Define the function separately instead of using a lambda and use a list comprehension instead of map():

def func(mylist):
    return [elem for elem in mylist if elem > 0]

onlyPositives = [func(e) for e in myintlist]

根据下面的评论,我认为有必要对此代码的各个版本进行概要分析,包括map()filter()和生成器表达式,以查看最快的版本.

Based on the comments below I think it's worth profiling various versions of this code, including map(), filter() and generator expressions to see what's fastest.

但是,只有一百万个子列表,您只能做很多事情.

However with one million sublists there's only so much you can do.

这篇关于Python:如何以合理的性能仅获取正数的嵌套int列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 13:14