Listen sind in Python eine geordnete Folge von Elementen eines beliebigen Typs. Beispiel:
bspliste = [1,'Hallo', ['2','ist nicht gleich',2]]
In der Beispiel-Liste steht eine Zahl, ein String und insbesondere wieder eine Liste. In Python erkennt man Listen an den eckigen Klammern. Was man alles mit Listen machen kann, zeigt das Beispiel list_demo.py. Wir schauen uns als Nachtrag zum letzten Mal eine modifizierte Version des HTML- Filters an, das Programm list-sonderzeichen.py:
1 # kodiert Umlaute, etc. in HTML
2 # in: eine Textzeile
3 # retour: die Textzeile mit in HTML kodierten Sonderzeichen
4 def HTMLfilter (zeile):
5 sonderzeichen = ['ä','ö','ü','Ä','Ö','Ü','ß','<','>','&','"']
6 kodiert = ['ä','ö','ü','Ä','Ö','Ü']
7 # so kann man Listen 'addieren' (verknüpfen):
8 kodiert = kodiert + ['ß','<','>','&']
9 # oder am Ende ein Element anhängen:
10 kodiert.append('"')
11 text = ''
12 for i in range( len(zeile) ):
13 if zeile[i] in sonderzeichen:
14 pos = sonderzeichen.index(zeile[i])
15 text = text + kodiert[pos]
16 else:
17 text = text + zeile[i]
18 return text
Einige Erklärungen zu diesem Programm:
sonderzeichen
und kodiert
(Zeile 5/6) sind zwei Listen, die Sonderzeichen in ursprünglicher und in HTML-kodierter Form enthalten. kodiert
wird in drei Schritten aufgebaut: zuerst eine Zuweisung (Zeile 6), dann eine Verknüpfung zweier Listen mit + (Zeile 8), und schließlich das Anhängen eines Elementes an die kodiert
-Liste mit Hilfe der append
-Funktion (Zeile 10). append
erwartet in Klammern das Element, welches in die Liste eingefügt werden soll, es wird immer am Ende der Liste angehängt! for
-Schleife passiert die Ersetzung (Zeile 12-17): man schaut Zeichen für Zeichen über die ganze Zeile, ob ein Sonderzeichen vorkommt (if
-Abfrage in Zeile 13!). Ist das der Fall, so liefert die index-Funktion in Zeile 14 die Position des zu ersetzenden Sonderzeichens in der sonderzeichen
-Liste. Statt des ursprünglichen Sonderzeichens wird in die Variable text
das kodierte Zeichen mitttels text + kodiert[pos]
übernommen (Zeile 15). Ansonsten (else
-Zweig in Zeile 16/17) wird der normale Text übernommen: text = text + zeile[i]
. findest du unter dem Link Beispiele:
woerter1.py
, das eine Text-Datei einliest, und die Worte in einer Liste zurückgibt. Benutze Funktionen aus der ferneren Vergangenheit! woerter1.py
so, dass mehrfach vorkommende Einträge durch einen einzigen Eintrag des betreffenden Wortes ersetzt werden (abspeichern unter woerter2.py
). Beispiel:['print','hallo','print','print','print',. . .]
wird
['print','hallo',...]
.→ sp, 2023-07-26