in that case you presented maybe it is more readeable but considering that lists as ["a","b"] can be inputted, not just using range, the result might be as it was. change x y people are happy change y and z people hate it

Abdur-Rahmaan Janhangeer,
Mauritius
abdurrahmaanjanhangeer.wordpress.com

On 13 Sep 2017 19:10, "Jason H" <jhihn@gmx.com> 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 = 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-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/