variable X procuct - [(x,y) for x in list1 for y in list2]

steindl fritz python at floSoft.org
Wed May 29 11:23:21 EDT 2002


steindl fritz wrote:

hello and many thx to all,

----------------------------------------------

my shortest version was only like this )-:


def cross(listOfLists):
    if len(listOfLists) == 1:
        grid = []
        for i in range(len(listOfLists[0])):
            grid.append([listOfLists[0][i]])
        return grid
    else: 
        list = listOfLists.pop(0)
        grid = cross(listOfLists)

        lengthList = len(list) 
        lengthGrid = len(grid)

        for i in range(lengthList-1):
            for j in range(lengthGrid):
                newList = []
                for i in range(len(grid[j])): newList.append(grid[j][i])
                grid.append(newList)

        for i in range(lengthList):
            for j in range(lengthGrid):
                grid[i*lengthGrid + j].append(list[i])
        return grid


<btw> generators will not be working with my
      ZOPE 2.5 installation (python 2.1.2)

------------------------------------------------

the shortest version was like this -


def cross(x):
    if x == []: return [[]]
    return [[z]+y for y in cross(x[1:]) for z in x[0]]

Usage: cross([list1,list2]), cross([list1,list2,list3]), ...


special thx to Paul

--------------------------------------------------


    steindl fritz
       (-:fs)
vienna, earth, universe





More information about the Python-list mailing list