python-syntax.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 18 Dec 2020 17:33:30 +0200
changeset 2470 6815c2cba7a1
parent 1929 3ce74b5f43c9
permissions -rw-r--r--
URL map API.


===============
 Python syntax
===============
.. contents::
   :local:

List comprehension
==================

List comprehension produce complete list with compact syntax::

  [x**2 for x in xrange(1,10)]
  [x+y for x in xrange(1,10) for y in xrange(1,10)]
  [x-y for x in xrange(1,10) for y in xrange(1,10) if x>y]

  xlist = [x**2 for x in xrange(1,10)]
  print xlist[0], xlist[2], xlist[-1]
  print xlist[2:4]
  print sum(xlist), sum(xlist)

Generator expression
====================

Generator expression produce generator with compact syntax::

  (x**2 for x in xrange(1,10))
  (x+y for x in xrange(1,10) for y in xrange(1,10))

  print [x for x in (x**2 for x in xrange(1,10))]

  xgen = (x**2 for x in xrange(1,10))
  try:
      xgen[0]
  except TypeError:
      print "'generator' object has no attribute '__getitem__'"
  print sum(xlist), sum(xlist)

Parentheses is required only if expression is ambiguous.