Rob,

It depends. Some purists say python abhors one liners. Well, I politely 
disagree and I enjoyed this book which shows how to write some quite compressed 
one-liners or nearly so.

Python One-Liners: Write Concise, Eloquent Python Like a Professional 
Illustrated Edition
by Christian Mayer (Author)

https://www.amazon.com/Python-One-Liners-Concise-Eloquent-Professional/dp/1718500505/ref=sr_1_1?crid=2MMIRHGLR3GHN&keywords=python+one+liners&qid=1677183160&sprefix=python+one+liner%2Caps%2C93&sr=8-1

The reality is that python is chock full of constructs that make one-liners 
easy and perhaps make a need for semi-colons less crucial.

An example is a comprehension like:

[x*y for x in range(10) for y in range(10) if x != y ]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 6, 8, 10, 12, 14, 
16, 18, 0, 3, 6, 12, 15, 18, 21, 24, 27, 0, 4, 8, 12, 20, 24, 28, 32, 36, 0, 5, 
10, 15, 20, 30, 35, 40, 45, 0, 6, 12, 18, 24, 30, 42, 48, 54, 0, 7, 14, 21, 28, 
35, 42, 56, 63, 0, 8, 16, 24, 32, 40, 48, 56, 72, 0, 9, 18, 27, 36, 45, 54, 63, 
72]

How many lines of code would it take to make than nonsense using an initializer 
for an empty list and nested loops and an "if" statement?

A barely longer one-liner add more functionality with no added lines or 
semicolons:

[(x*y, x+y, x>=y) for x in range(10) for y in range(10) if x != y  ]
[(0, 1, False), (0, 2, False), ..., (72, 17, True)]

Examples of all kinds of such things about including seemingly trivial things 
like how a "with" statement lets you hide lots of code to do when entering and 
exiting use of an object. I have earlier mentioned the way packing and 
unpacking can effectively replace many lines of code with one.

So the pythonic way often is not so much to do things one many lines but often 
to do things in a way that a unit of logic often can fit on one screen by using 
what the language offers judiciously even if you do not put multiple statement 
with semicolons on one line.

-----Original Message-----
From: Python-list <python-list-bounces+avi.e.gross=gmail....@python.org> On 
Behalf Of Rob Cliffe via Python-list
Sent: Thursday, February 23, 2023 6:08 AM
To: python-list@python.org
Subject: Re: semi colonic



On 23/02/2023 02:25, Hen Hanna wrote:
>
> i sometimes  put  extra  commas...  as:
>
>                                 [  1, 2,  3,  4,     ]
That is a good idea.
Even more so when the items are on separate lines:
     [
         "spam",
         "eggs",
         "cheese",
     ]
and you may want to change the order.
>
> so it is (or may be)  easier  to add things   later.
>
>             -----------  i can think of putting extra final  ;   for the same 
> reason.
That may not be such a good idea.  Writing multiple statements on one line is 
generally discouraged (notwithstanding that IMO it is occasionally appropriate).

Rob Cliffe
--
https://mail.python.org/mailman/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to