10

这个问题可能听起来很主观,但正如“禅宗”所说,有(几乎总是)一种首选方法,它最终不应该是主观的。

哪种方式更好?

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

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

许多其他任务也是如此,但我选择了这个,因为它可以代表所有类似的任务。

4

1 回答 1

9
  • 简单胜于复杂。
  • 可读性很重要。

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

这假设.something()不 mutate i,并且您使用的是 Python 2。

于 2014-01-16T07:27:47.847 回答