I'm a Python fan but I can't disagree more on that point. Python has terrible lambdas, and poor idioms when working with collections (list iteration over chainable/fluid interfaces).
Underscore.js, which at this point stands for 'idiomatic JS for collections', and the ES5 methods on arrays (filter/map) which are largely supported now provide a better way to handle arrays & hashes than idiomatic Python. With ES6 fat-arrow functions it's even better.
It's one of Python's biggest weaknesses when compared to other dynamic languages IMO -- that the idiomatic way to deal with 'collections' is not a chainable/fluid pattern, but instead to do multiple list comprehensions, or use the ugly filter-plus-lambda patterns which compose badly.
Double evens in a list:
ES6:
[1, 2, 3]
.filter(x => x % 2 == 0)
.map(x => x * 2)
ES5: [1, 2, 3]
.filter(function(x) { return x % 2 == 0 })
.map(function(x) { return x * 2 })
Python: map(lambda x: x * 2,
filter(lambda x: x % 2 == 0, [1, 2, 3]))
# or
evens = [x for x in [1, 2, 3] if x % 2 == 0]
[x*2 for x in evens]
The ES6 & ES5 JS examples are both clearly superior syntax IMO. More readable and the anonymous functions support multi-line so extend to more use-cases.EDIT: Removed the word 'objective' because I'm talking syntax.