title: Python equivalents to LINQ
body: <p>In C#, with LINQ, if I have en enumeration <code>enumerable</code>, I can do:</p>
  <pre class="lang-cs prettyprint-override"><code>// a: Does the enumerable contain an item that satisfies the lambda?
  bool contains = enumerable.Any(lambda);
  
  // b: How many items satisfy the lambda?
  int count = enumerable.Count(lambda);
  
  // c: Return an enumerable that contains only distinct elements according to my custom comparer
  var distinct = enumerable.Distinct(comparer);
  
  // d: Return the first element that satisfies the lambda, or throws an exception if none
  var element = enumerable.First(lambda);
  
  // e: Returns an enumerable containing all the elements except those
  // that are also in 'other', equality being defined by my comparer
  var except = enumerable.Except(other, comparer);
  </code></pre>
  <p>I hear that Python has a more concise syntax than C# (and is therefore more productive), so how do I achieve the same with an iterable in Python, with the same amount of code, or less?</p>
  <p>Note: I don't want to materialize the iterable into a list if I don't have to (<code>Any</code>, <code>Count</code>, <code>First</code>).</p>