[Python-ideas] Make map() better
Neil Girdhar
mistersheik at gmail.com
Thu Sep 14 19:15:36 EDT 2017
For these examples, you shouldn't be using map at all.
On Wednesday, September 13, 2017 at 11:10:39 AM UTC-4, Jason H wrote:
>
> The format of map seems off. Coming from JS, all the functions come
> second. I think this approach is superior.
>
> Currently:
> map(lambda x: chr(ord('a')+x), range(26)) # ['a', 'b', 'c', 'd', 'e', 'f',
> 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
> 'v', 'w', 'x', 'y', 'z']
>
> But I think this reads better:
> map(range(26), lambda x: chr(ord('a')+x))
>
> Currently that results in:
> TypeError: argument 2 to map() must support iteration
>
> Also, how are we to tell what supports map()?
> Any iterable should be able to map via:
> range(26).map(lambda x: chr(ord('a')+x)))
>
> While the line length is the same, I think the latter is much more
> readable, and the member method avoids parameter order confusion
>
> For the global map(),
> having the iterable first also increases reliability because the lambda
> function is highly variable in length, where as parameter names are
> generally shorter than even the longest lambda expression.
>
> More readable: IMHO:
> map(in, lambda x: chr(ord('a')+x))
> out = map(out, lambda x: chr(ord('a')+x))
>
out = (chr(ord('a')+x) for x in out)
is the most legible.
> out = map(out, lambda x: chr(ord('a')+x))
> Less readable (I have to parse the lambda):
> map(lambda x: chr(ord('a')+x), in)
> out = map(lambda x: chr(ord('a')+x), out)
> out = map(lambda x: chr(ord('a')+x), out)
>
> But I contend:
> range(26).map(lambda x: chr(ord('a')+x)))
> is superior to all.
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Python-ideas mailing list
> Python... at python.org <javascript:>
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170914/f9e42dd7/attachment-0001.html>
More information about the Python-ideas
mailing list