LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

А что именно вас «цепляет» в этой конструкции?

-------------------------+
                         |   +-----------------------+
                         v   v                       |
a = [ a[i] + a[i+offset] for i in range(len(a)-offset) if a[i+offset] < i ]
      ^                  |   |    ^                     ^               |
      |                  +--------+                     |               |
      |                      |                          |               |
      |                      +--------------------------+               |
      +-----------------------------------------------------------------+

<sarcasm> Оч удобно читать. Ничего не напрягает, всё последовательно и логично. </sarcasm>

А есть еще:

a = [i if i > 0 else 0 for i in blabla]

{then-val} if {cond} else {else-val}!!! Я на этой строчке поста задумался: а может питон так называется потому, что устроен про принципу свернувшейся в клубок змеи, и читать его надо по спирали? Или это всё неудачная штука Monty Python?

А еще бывают list comprehensions для { ... }.

А еще они бывают последовательными и вложенными, что есть две разные вещи, которые не нужно путать.

А с появлением the walrus operator в 3.8 писать write-only код в list comprehensions стало проще!

Python стремится к более простому, менее громоздкому синтаксису и грамматике

[...]

Python придерживается философии «должен существовать один — и, желательно, только один — очевидный способ сделать это»

[...]

Алекс Мартелли, член Python Software Foundation, и автор книг по Python пишет, что «Описывать что-то как „умное“ не считается комплиментом в культуре Python» (англ. To describe something as 'clever' is not considered a compliment in the Python culture).

[...]

* Красивое лучше, чем уродливое.
* Явное лучше, чем неявное.
* Простое лучше, чем сложное.
* Сложное лучше, чем запутанное.

Написано одно,на деле полностью другое. Куча ad-hoc костылей ка каждый случай вместо универсального подхода.

Тут где-то в другой теме кто-то хвастался функцией maketrans(). Вот тут я конечно прифигел, что кому-то такое приходит в голову.

Какой из них вам понятнее?

С лябмдой, конечно. Но что так, что так, в данном случае write only. Такой код проще переписать на простой цикл, читабельность от этого только выиграет.

Исходная версия wandrien, :

А что именно вас «цепляет» в этой конструкции?

-------------------------+
                         |   +-----------------------+
                         v   v                       |
a = [ a[i] + a[i+offset] for i in range(len(a)-offset) if a[i+offset] < i ]
      ^                  |   |    ^                     ^               |
      |                  +--------+                     |               |
      |                      |                          |               |
      |                      +--------------------------+               |
      +-----------------------------------------------------------------+

<sarcasm> Оч удобно читать. Ничего не напрягает, всё последовательно и логично. </sarcasm>

А есть еще:

a = [i if i > 0 else 0 for i in blabla]

{then-val} if {cond} else {else-val}!!! Я на это этой строчке задумался: а может питон так называется потому, что устроен про принципу свернувшейся в клубок змеи, и читать его надо по спирали? Или это всё неудачная штука Monty Python?

А еще бывают list comprehensions для { ... }.

А еще они бывают последовательными и вложенными, что есть две разные вещи, которые не нужно путать.

А с появлением the walrus operator в 3.8 писать write-only код в list comprehensions стало проще!

Python стремится к более простому, менее громоздкому синтаксису и грамматике

[...]

Python придерживается философии «должен существовать один — и, желательно, только один — очевидный способ сделать это»

[...]

Алекс Мартелли, член Python Software Foundation, и автор книг по Python пишет, что «Описывать что-то как „умное“ не считается комплиментом в культуре Python» (англ. To describe something as 'clever' is not considered a compliment in the Python culture).

[...]

* Красивое лучше, чем уродливое.
* Явное лучше, чем неявное.
* Простое лучше, чем сложное.
* Сложное лучше, чем запутанное.

Написано одно,на деле полностью другое. Куча ad-hoc костылей ка каждый случай вместо универсального подхода.

Тут где-то в другой теме кто-то хвастался функцией maketrans(). Вот тут я конечно прифигел, что кому-то такое приходит в голову.

Какой из них вам понятнее?

С лябмдой, конечно. Но что так, что так, в данном случае write only. Такой код проще переписать на простой цикл, читабельность от этого только выиграет.