草庐IT

python - GenExp 上的 Tuple() 与 ListComp

我有一些(少量)项目的列表,例如:my_list=[1,2,3,4,5,6,7,8,9,10]我有一个索引元组,例如:indexes=(1,5,9)我想要列表中值的元组,例如:tuple(my_list[x]forxinindexes)但这被证明是相当慢的(当运行很多次时)。对于我运行的每个列表,索引元组都不会改变-那么有没有更快的方法?我使用的是Python2.5,到目前为止我得到了这些令人惊讶的结果:python-mtimeit-s"indexes=(1,5,9);l=[1,2,3,4,5,6,7,8,9,10]""tuple(l[i]foriinindexes)"100000lo

python - 为什么这个 genexp 的表现比列表理解差?

我试图找到一种最快的方法来计算列表中与特定过滤器匹配的项目数。在这种情况下,查找列表中有多少个奇数。在执行此操作时,我对比较列表理解与等效生成器表达式的结果感到惊讶:python-mtimeit-s"L=xrange(1000000)""sum([1foriinLifi&1])"10loops,bestof3:109msecperlooppython-mtimeit-s"L=xrange(1000000)""sum(1foriinLifi&1)"10loops,bestof3:125msecperloop我也尝试过将L作为常规列表,并且大小不同,但在所有情况下列表理解都会获胜。与创建包