Amusingly, you could be talking about Ruby or Python on all of these points (if you swap swap "Enumerable" for "the iterator protocol").
In my opinion Ruby pips Python to the post (however slightly) in each respect, but it's clearly a question of taste.