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 1
实测如下:
len(list) f1 f2 100000 0.006 0.009 1000000 0.07 0.103 10000000 0.727 1.052 |