Sagen wir, ich habe eine Liste,Listen: besser schneiden mit iterativen Summen von Untergruppen finden
A = range(1, 6) = [1, 2, 3, 4, 5]
B
, ist das Endergebnis, eine Liste von Listen ist. Gegeben i
und j
, wie würden Sie eine Liste von iterativen Summen machen, wo Index i
Grenzen der einen Seite und j
der andere?
B[j] = sum(A[j:i+1] or A[i:j+1])
je nachdem, ob j
oder i
größer ist.
Beispiele für Indizes 0 und 2:
B[0] = [1, 1+2, 1+2+3, 1+2+3+4, 1+2+3+4+5]
= [1, 3, 6, 10, 15]
B[2] = [1+2+3, 2+3, 3, 3+4, 3+4+5]
= [6, 5, 3, 7, 12]
======
Aktuelle Code (Werke) sind zwei for
Schleifen, sehr brutale Gewalt. Ich denke, es sollte eine Möglichkeit geben, reduce
zu verwenden?
A = range(1,6)
n = len(A)
B = []
for j in xrange(n):
b = []
for i in xrange(n):
if j <= i:
b.append(sum(A[j:i+1]))
else:
b.append(sum(A[i:j+1]))
B.append(b)
# print
for b in B:
print b
Minor Kontext: möglicherweise ein Teil meiner Lösung euler 82