Differenz von Listenwerten als Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Marleb
User
Beiträge: 22
Registriert: Montag 5. August 2013, 11:00

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
Zuletzt geändert von Hyperion am Dienstag 6. August 2013, 17:15, insgesamt 1-mal geändert.
Grund: Code in Python-Code-Tags gesetzt und Einrückungen ergänzt (so weit ersichtlich)
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.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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?
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@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
In specifications, Murphy's Law supersedes Ohm's.
Antworten