怎么看待代码中,为了效率合并循环?

2015-04-24 22:12:50 +08:00
 zhmin
items = [...]
for item in items:
do_somthing_1(item)

for item in items:
do_something_2(item)

但是do_somthing_1和do_something_2是两个没有逻辑关联的过程,

合并循环,
for item in items:
do_somthing_1(item)
do_something_2(item)

大家一般倾向于哪种习惯?
4601 次点击
所在节点    Python
22 条回复
notcome
2015-04-25 13:20:18 +08:00
Python 的循环怎么可能合并,你得先看有没有副作用啊。

反正不追求速度,我觉得你爱怎么来怎么来。如果是我的话,我觉得合并的可读性较高,循环那一层在我看来是废话,而废话,能写一次就不要写两次。

但在其它语言中,这确实是可以合并的,比如 Haskell。

将一个列表里每一个元素加一,可以是:
map (+1) list

全平方,可以是
map (^2) list

或者写清楚一点,f = (+1),g = (^2)
那么把一个表里所有数加一再平方,就是:
map g (map f list)

但是不用担心,编译器会避免遍历两次表的,上述代码会被优化成:
map (g . f) list

其中,点号代表函数……composition,中文啥来着?
geeklian
2015-04-26 11:55:18 +08:00
怎么可读性高,怎么接近业务逻辑怎么来。

这么点性能都纠结,干嘛不换java.netc++

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/186131

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX