Nie trzeba pętlę, należy zip()
transpozycji listę, a następnie podjąć żądaną kolumnę:
sum(list(zip(*data)[i]))
(Uwaga w 2.x, zip()
zwraca listę, więc nie potrzebujesz połączenia list()
).
Edit: Najprostszym rozwiązaniem tego problemu, bez użycia zip()
, będzie prawdopodobnie:
column_sum = 0
for row in data:
column_sum += row[i]
Właśnie pętli wierszy, biorąc elementu i dodanie go do naszego sumie.
Jest to jednak mniej wydajne i raczej bezsensowne, ponieważ mamy wbudowane funkcje, które umożliwiają nam to. Zasadniczo użyj zip()
.
rozważyć przeniesienie do NumPy ndarrays dla ładniejsze cięcie (w twoim przypadku byłaby to "a [:, i] .sum()" – wim