Python  1.0
Functions
_03d_pascal_zip Namespace Reference

A Pascal triangle generator using yield. More...

Functions

def pascal (nlines, line=[1])
 A Pascal Triangle generator. More...
 
def main ()
 

Detailed Description

A Pascal triangle generator using yield.

Author
Paulo Roma
Since
21/05/2010
See also
http://en.wikipedia.org/wiki/Generator_(computer_science)

Function Documentation

◆ main()

def _03d_pascal_zip.main ( )

References pascal().

◆ pascal()

def _03d_pascal_zip.pascal (   nlines,
  line = [1] 
)

A Pascal Triangle generator.

Parameters
nlinesnumber of rows to be returned.
linelist with the current row.
Returns
a generator which, each time, return the whole next line of the Pascal triangle.
See also
https://pythontips.com/2013/09/29/the-python-yield-keyword-explained/
https://docs.python.org/3/library/functions.html#map

map(function, iterable, ...)

Apply function to every item of iterable and return a list of the results. If additional iterable arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel.
If one iterable is shorter than another it is assumed to be extended with None items.

If function is None, the identity function is assumed; if there are multiple arguments, map() returns a list consisting of tuples containing the corresponding items from all iterables (a kind of transpose operation).
The iterable arguments may be a sequence or any iterable object; the result is always a list.

>>> line=[1,3,3,1]
>>> [0] + line
[0, 1, 3, 3, 1]
>>> line + [0]
[1, 3, 3, 1, 0]
>>> list(zip([0] + line, line + [0]))
[(0, 1), (1, 3), (3, 3), (3, 1), (1, 0)]
>>> list(map(sum, zip([0] + line, line + [0])))
[1, 4, 6, 4, 1]

Referenced by main().