Seite 1 von 1

Differenz von Listenwerten als Schleife

Verfasst: Dienstag 6. August 2013, 15:13
von Marleb
I möchte in einer schliefe spalte2-spalte1, dann spalte 3-spalte2 usw. und das ergebnis in eine neue liste? Hat jemand eine Idee?

Code: Alles auswählen

import csv

data = open("example.csv", "rb")
lines = []
for line in data.xreadlines():
    print line
for i in range (len(data) - 1):
    fk = data[i+1] - data[i]
    print fk

Re: Differenz von Listenwerten als Schleife

Verfasst: Dienstag 6. August 2013, 15:31
von BlackJack
@Marleb: Lern die Python-Grundlagen. Und setz Änderungsvorschläge um. Zu `xreadlines()` hatte ich an anderer Stelle schon was geschrieben. Ebenfalls zum importieren und dann nicht verwenden vom `csv`-Modul.

Der Indexzugriff auf Dateiobjekte wird nicht funktionieren. Wie bist Du denn auf die Idee gekommen das zu probieren? Also welche Dokumentation hat den Eindruck erweckt, dass man das machen könnte? Mit einfach wild herumprobieren wirst Du nämlich nicht weit kommen, so funktioniert Programmieren nicht.

Re: Differenz von Listenwerten als Schleife

Verfasst: Dienstag 6. August 2013, 22:30
von /me
Marleb hat geschrieben:I möchte in einer schliefe spalte2-spalte1, dann spalte 3-spalte2 usw. und das ergebnis in eine neue liste?
Gilt diese Anforderung für jede einzelne Zeile der CSV-Datei?

Und warum importierst du das csv-Modul wenn du es dann nicht verwendest?

Re: Differenz von Listenwerten als Schleife

Verfasst: Mittwoch 7. August 2013, 14:27
von pillmuncher
@Marleb: Du könntest das pairwise()-Rezept aus itertools verwenden:

Code: Alles auswählen

>>> from itertools import izip, tee
>>>
>>> def pairwise(iterable):
...     "s -> (s0,s1), (s1,s2), (s2, s3), ..."
...     a, b = tee(iterable)
...     next(b, None)
...     return izip(a, b)
...
>>> for x, y in pairwise(range(10)):
...     print y * x
...
0
2
6
12
20
30
42
56
72