История изменений
Исправление 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. Такой код проще переписать на простой цикл, читабельность от этого только выиграет.