def transpose(xss):
    """
    Transpose a list of lists. Each element in the input list of lists is
    considered to be a column. The list of rows is returned.

    The nested lists are assumed to all be of the same length. If they are not,
    the shortest list will be used as the number of output rows and other rows
    wil be lost without raising an error.
    """
    # get the number of rows in the input
    N = min([len(xs) for xs in xss])
    return [[xs[i] for xs in xss] for i in range(N)]