
1 swulling 2013-04-24 00:31:35 +08:00 没有,两个都是iterator 前者更好用,我喜欢 |
2 adieu 2013-04-24 00:54:20 +08:00 应该是第一个写法效率高,参见 https://gist.github.com/anonymous/5445383 第二个写法会用到function call,对效率影响比较大 话说其实测一下应该很容易比较出来 |
3 mengzhuo 2013-04-24 01:12:30 +08:00 第一种是Python的C实现,数据量小的话比第二种快70倍左右 而且==0 可以不写了 [ x for x in some_list if x % 2] |
5 talentsnail OP |
6 yangxin0 2013-04-24 10:00:10 +08:00 第一条是以C语言执行,第二条是解释执行。 |
7 mengzhuo 2013-04-24 11:00:34 +08:00 @leiz 谢谢指正,我太粗心了 LZ也要小心 0%2 #0 -> False 1%2 #1 -> True 那就应该改成 [ x for x in some_list if not x % 2] 不过这样不如 [ x for x in some_list if x%2 == 0] 看得清 |
8 guotie 2013-04-24 11:54:55 +08:00 实测如下: len(list) f1 f2 100000 0.006 0.009 1000000 0.07 0.103 10000000 0.727 1.052 |