PSPP Python Praktikum 1
Page content
Phython Praktikum 1
Lisp vs. Python
Listen
| Lisp | Python |
|---|---|
| (apfel banane zitrone) | [‘apfel’, ‘banane’, ‘zitrone’] |
| (car ‘(eins zwei drei)) | [‘apfel’, ‘banane’, ‘zitrone’][0] |
| (cdr ‘(eins zwei drei)) | [‘apfel’, ‘banane’, ‘zitrone’][1:] |
| (lenght ‘(1 2 3)) | len([1,2,3]) |
| (append ‘(1 2 3 4) ‘(4 5)) | [1,2,3] + [4, 5] |
liste[n:m] Teilsequenz vom n-ten bis zum (m-1)-ten Element
liste[n:] Teilsequenz vom n-ten bis zum Ende der Liste
liste[:m] Teilsequenz vom Anfang bis zum (m-1)-ten Element
Ein negativer Index wird von hinten gezählt.
Tupel
Tupel in Python verhalten sich ähnlich wie Listen, sind aber unveränderlich.
(1, 2, 3) Tupel aus drei Zahlen
(1, 2, 3)[:2] Teilsequenz vom n-ten bis zum Ende der Liste
a = “er”, “sie”, “es” Zuweisung des Tupels (’er’, ‘sie’, ’es’)
Dictionaries
Dictionaries speichern Schlüssel-Wert-Paare. Sie werden in geschweiften Klammern geschrie-
ben (und ähneln somit Objekten in JavaScript).
telefon = { “bernd”: “0921/76499”, “susi”: “0371/233444” }
telefon[“susi”]
telefon[“hans”] = “0366/873543”
Funktionen
| Lisp | Python |
|---|---|
| (defun list-double (lst) (if (not(null lst)) (cons (* 2 (car lst)) (list-double (cdr lst))))) |
def list_double(seq): if(len(seq) != 0): return [2 * seq[0]] + list_double(seq[1:]) else: return [] |
Vereinfachung mit Python
def list_double(seq):
return [2*x for x in seq]
Typen und Literale
"spam" + "eggs" # 'spameggs'
s = "ham" # s='ham'
"eggs " + s # "eggs ham"
s * 3 # 'hamhamham'
s[1]+s[:-1] # 'aha' ('a' + 'ha')
"green %s and %s" % ("eggs", s) # 'green eggs and ham'
('x', 'y')[1] # 'y'
z = [1, 2, 3] + [4, 5, 6] # [1, 2, 3, 4, 5, 6]
z, z[:], z[:0], z[-2], z[-2:] # ([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [], 5, [5, 6])
z.reverse(); z # [6, 5, 4, 3, 2, 1]
{'a':1, 'b':2}['b'] # 2
d = {'x':1, 'y':2, 'z':3} # {'y': 2, 'x': 1, 'z': 3}
d['w'] = 0 # {'y': 2, 'x': 1, 'z': 3, 'w': 0} neuer Eintrag im Dictionary
d[(1,2,3)] = 4 # {'y': 2, 'x': 1, 'z': 3, 'w': 0, (1, 2, 3): 4} neuer Eintrag mit Tupel (1,2,3) als Key
d.keys() # ['y', 'x', 'z', 'w', (1, 2, 3)]
list(d.keys()), list(d.values()) # (['y', 'x', 'z', 'w', (1, 2, 3)], [2, 1, 3, 0, 4])
Funktionen
Zeichencodes
def strcodes(inp):
return map(ord,inp)
Listen
def zipLists(*inputList):
return list(zip(*inputList))