2017-05-04 2 views
1

Ich habe eine 2D-Liste, sagen wir [[1,2,3,4],[5,6,7,8,9]]. Ich weiß, dass ich die erste Zeile von sum(a[0]) Summierung bekommen kann. Aber was ist, wenn ich die ersten zwei oder drei Elemente zusammenfassen muss? Der Pseudo-Code sollte wie folgt sein:
sum(a[0,1:N]) == 0 die Summation von 1 bis N Elemente in Reihe bedeutet 0.Summierung von spezifischen Bereich in einer Zeile einer 2D-Liste in Python

+1

Können Sie zusätzliche Pakete verwenden? Ich würde empfehlen, wenn Sie in Pandas suchen. – Kyle

+0

Also, die Antwort wäre 6 wenn N = 3 in dem gegebenen Beispiel? versuche: 'sum (a [0] [: N])' – DSLima90

+0

Ich kenne Panda nicht, aber ich werde es mir ansehen. Vielen Dank! – MASOUD

Antwort

1

eine Liste von Listen erfordert iterierten SCHNEIDEN, nicht Indizieren

a = [[1,2,3,4],[5,6,7,8,9]] 

sum(a[0][0:3]) 

Das ist 1 + 2 + 3 (die ersten 3 Elemente von a; erinnern Python verwendet halboffene Intervalle)

+1

Noch näher an der Frage: 'sum (a [0] [: 2])' oder 'sum (a [0] [: 3])'. – Elmex80s

+0

guter Punkt, ändere meine Antwort zu weniger verwirrend –

+0

Funktioniert gut! Vielen Dank! – MASOUD

1

Ihre Frage ist auch nicht klar, dass Sie möchten, dass Ihre erste Index das heißt die Summe der a [0] = 1 + 2 + 3 + 4 = 10

Code Summe für oben

sum = 0 
for value in a[0]: 
    sum = sum + value 

print sum 

Wenn Sie Summe wollen alle Element bis N dh 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45

lenth_of_array = len (a)

sum = 0

for i, array in enumerate(a): 
    for value in array[i]: 
     sum = sum + value 

print sum 
+0

Vielen Dank für Ihre ausführliche Antwort. sum (a [0] [0: 3]) erledigt die Aufgabe bereits. – MASOUD

1
ll = [[1,2,3,4],[5,6,7,8,9]] 

def getSum(list_index,count): 
    # list_index = index of list. 
    # count = tuple , first and last index 
    return sum(ll[list_index][count[0]:count[1]+1]) 

result = getSum(0,(1,3)) 
print(result) 

# getSum(0,(1,2)) 
# 0 = > list_index => [1,2,3,4] 
# (1,2) => element (1 to 3) => 2 + 3 + 4 = 9 
+1

das ist eine Art Overkill, oder? –

+0

Ich denke schon, obwohl es ein weiser Weg ist. sum (a [0] [: 2]) lösen das Problem bereits. – MASOUD

Verwandte Themen