# Python Variable hochzählen?



## AssELAss (9. Jul 2015)

Hallo zusammen,

wie zählt man in Python eine Variable hoch?
Ausgangspunkt: Textfile mit einem in dem gleiche Wörter vorkommen, gleichen soll einfach nur aufsteigend eine Zahl angehangen werden

import fileinput
import time

wert = 1
wert=str(wert)
for line in fileinput.FileInput("D:/test/ueber.txt", inplace=1):

line=line.replace("ZWEDAT","ZWEDAT_" + wert)
print line


----------



## Dompteur (9. Jul 2015)

Um das Beispiel einfacher zu machen, habe ich statt des Files ein String-Array zum Testen genommen. Damit sieht der Code dann so aus:

```
tList = [ "kjdsjds ZWEDAT ddksdj", "cvlkfml", "kjdsj32s ZWEDAT ddgdj"]
wert = 1
for line in tList:
    if ( line.find ("ZWEDAT") >= 0 ):
        wert=wert+1
        line=line.replace("ZWEDAT","ZWEDAT_" + str(wert))
    print line
```


----------



## AssELAss (9. Jul 2015)

Leider bin ich ein absoluter Newbie in Sachen Python.
Wie stelle ich das an?

Ausgangsfile sieht so aus : ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT;BETRAG;KJUOIOI;DHIUID;ZWEDAT

Soll nachher wieder in einer Zeile ausgegeben werden, am besten direkt ins Textfile

Und zwar so : ZWEDAT_1;BETRAG;KJUOIOI;DHIUID;ZWEDAT_2;BETRAG;KJUOIOI;DHIUID;ZWEDAT_3;BETRAG;KJUOIOI;DHIUID;ZWEDAT_4;BETRAG;KJUOIOI;DHIUID;ZWEDAT_5


----------



## Dompteur (10. Jul 2015)

Kannst du bitte die vollständige Aufgabenstellung reinstellen ?
In deinem Beispiel kommt auch "BETRAG" mehrmals vor. Müsste dieses Wort auch einen Zähler angehängt bekommen ?


----------



## AssELAss (10. Jul 2015)

ja mehrere Wörter in der Datei sind gleich, diese alle müssten durchnummeriert werden.

Ist das lösbar in Python?


----------



## Dompteur (10. Jul 2015)

Ich skizziere einmal einen möglichen Ansatz:
* Du legst dir ein Dictionary an mit folgendes Struktur : Wort -> Anzahl
Da kommt dann jedes Wort rein. In Anzahl steht dann, wie oft dieses Wort schon vorgekommen ist.

* Nun zerlegt du dein File und die Zeilen so, dass du Wort für Wort durchgehst und folgendes machst:
** Ist das neue Wort schon im Dictionary ?
*** Ja -> Häng Anzahl an das Wort und erhöhe die Anzahl des Worte in Dictionary (Update des Dictionary). Schreib das veränderte Wort ins Ergebnis
*** Nein -> Leg einen neuen Eintrag im Dictionary an (Wort -> 1). Schreib das Wort ins Ergebnis

Wenn du das für jedes Wort gemacht hast, bist du fertig.


----------

