2017-01-06 5 views
0

Ich habe eine Liste der Listen enthält,Hinzufügen von Elementen der Liste nicht funktioniert

testList = [[1, 0, 1], [1, 1, 1], [0, 0, 0], ...]

Was möchte ich tun, ist, dass die Liste in Gruppen von n hinzufügen, so dass, wenn n 2 ist, die Die ersten beiden Listen werden zusammengefügt und die zweiten beiden Listen werden zusammengefügt. Sie werden wie folgt aussehen: [1, 0, 1] + [1, 1, 1] = [2, 1, 2].

Ich habe versucht, den folgenden Code,

group_len = 3 
sumResultList = [[sum(x) for x in zip(*testList)] for group in [testList[i:i+group_len] for i in range(0, len(testList), group_len)]] 

Aber der obige Code nicht funktioniert, wie dieses ich lösen?

Antwort

3
l = [[1, 0, 1], [1, 1, 1], 
    [0, 0, 0], [1, 0, 1], 
    [1, 1, 1], [1, 0, 1], 
    [1, 1, 1], [1, 1, 1]] 
n = 2 
print [[sum(x) for x in zip(*l[a:a+n])] for a in range(0,len(l),n)] 

Ausgang:

[[2, 1, 2], [1, 0, 1], [2, 1, 2], [2, 2, 2]] 
+0

Vielen Dank, das war das, was ich suchte, machte ich mein zu kompliziert ! –

1

Versuchen Sie folgendes:

testList = [[1, 0, 1], [1, 1, 1], [0, 0, 0], [2,3,4], [2,3,4], [2,3,4]] 

group_len = 2 
res = [list(map(sum, zip(*testList[k:k+group_len]))) for k in range(0, len(testList), group_len)] 
print(res) 

Ausgang:

[[2, 1, 2], [2, 3, 4], [4, 6, 8]] 
Verwandte Themen