python Zen:只有一个方法

Python Zen - (only) one way to do it

本问题已经有最佳答案,请猛点这里访问。

这个问题听起来可能很主观,但正如"禅宗"所说,有(几乎总是)一种方法可以被偏爱,它不应该是主观的。

更好的方法是什么?

1
2
3
[i.something() for i in l]
map(operator.methodcaller('something'), l)
map(lambda x: x.something(), l)

(1)非常清楚,但在许多答案中,使用了map()。如果我们这样做,那么(2)和(3)之间的可读性几乎相等(至少在IMO)。

其他许多任务也同样重要,但我选择了这一个,因为它可以代表所有相似的任务。


  • 简单胜于复杂。
  • 可读性计数。

两者都是对[i.something() for i in l]的明确论据。

这假设.something()不会改变i,并且您在python 2上。