1
swulling 2013 年 4 月 24 日
没有,两个都是iterator
前者更好用,我喜欢 |
2
adieu 2013 年 4 月 24 日
应该是第一个写法效率高,参见 https://gist.github.com/anonymous/5445383
第二个写法会用到function call,对效率影响比较大 话说其实测一下应该很容易比较出来 |
3
mengzhuo 2013 年 4 月 24 日
第一种是Python的C实现,数据量小的话比第二种快70倍左右
而且==0 可以不写了 [ x for x in some_list if x % 2] |
5
talentsnail OP |
6
yangxin0 2013 年 4 月 24 日
第一条是以C语言执行,第二条是解释执行。
|
7
mengzhuo 2013 年 4 月 24 日
@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 年 4 月 24 日 实测如下:
len(list) f1 f2 100000 0.006 0.009 1000000 0.07 0.103 10000000 0.727 1.052 |