Seite 1 von 1

Datei einlesen und ihre Beiträge addieren.

Verfasst: Donnerstag 2. April 2015, 13:26
von MoniZ
Hallo liebe Leute,

habe folgendes Problem: Ich lese eine Datei mit 1000 Einträgen (Zahlen), alle untereinander geschrieben. Jetzt würde ich gerne den ersten Beitrag zu dem 101sten und zu den 201sten und zu dem 301sten .... und den 901sten addieren. Dann den zweiten Beitrag zu den 102sten und zu den 202sten... und zu den 902 Beitrag addieren. Und so für alle Werte bis 100. Mein Program sieht bis jetzt so aus:

Code: Alles auswählen

f_in=open('1.dat')
f_out=open('2.dat', 'w')
for line in f_in:

f.close()
Bitte kann mir jemand sagen, wie ich die Beiträge untereinander addieren kann. Ich wäre sehr dankbar. Glaube das ist bestimmt garnicht so schwierig, habe aber noch kein Buch über Python gekauft und durch googlen finde ich nichts.

Viele Lieben Dank!
Monika

Re: Datei einlesen und ihre Beiträge addieren.

Verfasst: Donnerstag 2. April 2015, 13:35
von Sirius3
MoniZ hat geschrieben:habe aber noch kein Buch über Python gekauft
Wie lernst Du Python?

Slicing von Listen bietet viele Möglichkeiten.

Re: Datei einlesen und ihre Beiträge addieren.

Verfasst: Donnerstag 2. April 2015, 14:09
von BlackJack
@MoniZ: In der Python-Dokumentation gibt es ein Tutorial, welches man mal durchgearbeitet haben sollte. Für absolute Programmieranfänger wird oft Learn Python The Hard Way empfohlen (nicht vom Titel irritieren lassen :-)).

Wenn man Dateien zusammen mit der ``with``-Anweisung öffnet, dann werden die garantiert wieder geschlossen wenn der ``with``-Block verlassen wird. Das ist etwas sicherer als selbst irgendwann `close()` aufzurufen.

Neben dem „slicing” könnte die `zip()`-Funktion, die `sum()`-Funktion, und die „list comprehension”-Syntax nützlich sein. Ausserdem im Zusammenhang mit `zip()` auch noch alles ”exotische” rund um Funktionsaufrufe (Stichwort: ``*``).

Re: Datei einlesen und ihre Beiträge addieren.

Verfasst: Donnerstag 2. April 2015, 15:32
von Hyperion
Weil heute Gründonnerstag ist einfach mal Hippie mäßig:

Code: Alles auswählen

from itertools import cycle
values = range(100)
chunks = 10
result = [[] for _ in range(chunks)]
index = cycle(range(chunks))
for value in values:
    result[next(index)].append(value)

 > result
[[0, 10, 20, 30, 40, 50, 60, 70, 80, 90],
 [1, 11, 21, 31, 41, 51, 61, 71, 81, 91],
 [2, 12, 22, 32, 42, 52, 62, 72, 82, 92],
 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93],
 [4, 14, 24, 34, 44, 54, 64, 74, 84, 94],
 [5, 15, 25, 35, 45, 55, 65, 75, 85, 95],
 [6, 16, 26, 36, 46, 56, 66, 76, 86, 96],
 [7, 17, 27, 37, 47, 57, 67, 77, 87, 97],
 [8, 18, 28, 38, 48, 58, 68, 78, 88, 98],
 [9, 19, 29, 39, 49, 59, 69, 79, 89, 99]]

> list(map(sum ,result))
[450, 460, 470, 480, 490, 500, 510, 520, 530, 540]
:mrgreen: