Python Zen - (только) один способ сделать это

Этот вопрос может быть звуковым субъективным, но, как говорит "Дзен", существует (почти всегда) один из способов выбора, он не должен быть субъективным в конце.

Какой способ лучше?

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

(1) является (IMO) очень ясным, но во многих ответах используется map(). И если мы это сделаем, то существует почти равная читаемость между (2) и (3) (по крайней мере, IMO).

То же самое относится ко многим другим задачам, но я выбрал это, так как он может стоять за всеми подобными.

Ответ 1

  • Простой лучше, чем сложный.
  • Показатели удобочитаемости.

Оба являются четкими аргументами для [i.something() for i in l].

Это предполагает, что .something() не мутирует i и что вы находитесь на Python 2.