Liste in kleinere Listen aufspalten
Verfasst: Sonntag 29. Juni 2014, 19:26
Hi,
ich habe ein kleines Problem und zwar muss ich für eine Programm eine Funktion schreiben, die eine beliebige Liste in kleiner aufteilt (es is in Worten etwas schwierig zu erklären, also zeige ich mal ein Beispiel):
[1,2,3,4,5,6,7,8,9] soll in alle möglichen 2er Gruppen aufgeteilt werden:
[[1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [2, 2], [2, 3],
[2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [3, 3], [3, 4], [3, 5], [3, 6],
[3, 7], [3, 8], [3, 9], [4, 4], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [5, 5],
[5, 6], [5, 7], [5, 8], [5, 9], [6, 6], [6, 7], [6, 8], [6, 9], [7, 7], [7, 8],
[7, 9], [8, 8], [8, 9]]
Dazu habe ich eine Funktion geschrieben:
Diese Funktion funktioniert auch gut, aber nur, wenn als zweites argument 2 übergeben wird. Bei 3 kommt zum Beispiel die Menge [1,3,3] im Ergebnis vor, obwohl sie es nicht sollte. Gibt es irgendeinen leichteren Weg, und wenn nicht, was stimmt mit meiner Funktion nicht?
Vielen Dank
ich habe ein kleines Problem und zwar muss ich für eine Programm eine Funktion schreiben, die eine beliebige Liste in kleiner aufteilt (es is in Worten etwas schwierig zu erklären, also zeige ich mal ein Beispiel):
[1,2,3,4,5,6,7,8,9] soll in alle möglichen 2er Gruppen aufgeteilt werden:
[[1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [2, 2], [2, 3],
[2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [3, 3], [3, 4], [3, 5], [3, 6],
[3, 7], [3, 8], [3, 9], [4, 4], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [5, 5],
[5, 6], [5, 7], [5, 8], [5, 9], [6, 6], [6, 7], [6, 8], [6, 9], [7, 7], [7, 8],
[7, 9], [8, 8], [8, 9]]
Dazu habe ich eine Funktion geschrieben:
Code: Alles auswählen
def chunk(list, n):
r = []
l = [a for a in range(0, n)]
while(l[0] != (len(list))-1):
e = []
for i in l:
print i
e.append(list[i])
r.append(e)
c = 0
b = True
while(b):
c += 1
b = (l[-c] == (len(list)-1))
l[-c] += 1
for k in range(1, c):
l[-k] = l[-c]
return rVielen Dank