Seite 1 von 1

Listenwerte aneinanderfügen

Verfasst: Samstag 23. Mai 2009, 00:07
von Hahne
Hallo zusammen,

ich bin hier total versumpft und komm nicht weiter.
Einzelne Listeneinträge sollen in einer schleife so "verknüpft" werden, dass aus

l1 = [1,2,3]
l2 = [4,5,6]

folgendes wird:

[[1, 4], [1, 5], [1, 6], [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6]]

Ich steh den ganzen abend schon auf dem schlauch - kann mir jemand auf die sprünge helfen?

Im Endeffekt müsste man nur das folgende in eine schleife umsetzen - aber ich peils einfach nicht:

Code: Alles auswählen

l1 = [1,2,3]
l2 = [4,5,6]
l = []
for i in xrange(9):
    l.append([])
    
l[0].append(l1[0])
l[0].append(l2[0])

l[1].append(l1[0])
l[1].append(l2[1])

l[2].append(l1[0])
l[2].append(l2[2])

l[3].append(l1[1])
l[3].append(l2[0])

l[4].append(l1[1])
l[4].append(l2[1])

l[5].append(l1[1])
l[5].append(l2[2])

l[6].append(l1[2])
l[6].append(l2[0])

l[7].append(l1[2])
l[7].append(l2[1])

l[8].append(l1[2])
l[8].append(l2[2])

print l
Schönen Gruß,
Hahne[/code]

Verfasst: Samstag 23. Mai 2009, 00:14
von problembär

Code: Alles auswählen

#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-

l3 = []

l1 = [1,2,3]
l2 = [4,5,6]

for i in l1:
    for u in l2:
        l3.append([i, u])

print l3
Noch Fragen :cool: ?

Gruß

Verfasst: Samstag 23. Mai 2009, 00:55
von DasIch

Code: Alles auswählen

In [1]: l1 = [1, 2, 3]

In [2]: l2 = [4, 5, 6]

In [3]: [(x, y) for x in l1 for y in l2]
Out[3]: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

Verfasst: Samstag 23. Mai 2009, 07:59
von HWK

Code: Alles auswählen

IDLE 2.6.1      
>>> from itertools import product
>>> list(product([1, 2, 3], [4, 5, 6]))
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
MfG
HWK

Verfasst: Samstag 23. Mai 2009, 09:19
von Hahne
Servus!

Vielen Dank für die Antworten - funktioniert einwandfrei!

Gruß,
Hahne