Is there a more elegant way to spell this?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Jan 27 19:55:58 EST 2015


Neal Becker wrote:

> Is there a more elegant way to spell this?
> 
> for x in [_ for _ in seq if some_predicate]:

Don't use _ as the loop variable here.

There are three common conventions for _ and this is none of them:


(1) n the interactive interpreter _ is used for the result of the last
expression:

py> 1+2
3
py> _ * 2
6

(2) In locale-aware applications, _ is apparently used as a function for
localising text into the user's native language.

(3) _ is also commonly used as a "don't care" variable name:

a, _, b, _ = get_four_items()  # but I only care about two of them


So in a loop, you would only use _ as the loop variable when you don't use
the loop variable, e.g.:

[random.random() for _ in range(10)]


Of course, a convention is just a convention, not a law, you can ignore such
conventions if you insist. But conventions make it easier and quicker to
understand code, not just for others, but for yourself as well.


-- 
Steven




More information about the Python-list mailing list