list

Ekkart Kleinod  • 
  • 'Martelli Ravenscroft Holden'.split() scheint völlig normaler Code zu sein

Sortieren

  • list.sort sortiert in place
  • sorted(list) gibt die sortierte Liste zurück
  • Parameter können angegeben werden

List Slicing

0-basiert, gewöhnungsbedürftig

l = [10, 20, 30, 40, 50, 60]
print(l[:2])
print(l[2:])
print(l[:3])
print(l[3:])
[10, 20]
[30, 40, 50, 60]
[10, 20, 30]
[40, 50, 60]
s = 'bicycle'
print(s[::3])
print(s[::-1])
print(s[::-2])
bye
elcycib
eccb

List Comprehension

Listen erstellen, die man sonst über die for-Schleife erstellen würde.

symbols = '$¢£¥€¤'
codes = [ord(symbol) for symbol in symbols]
print(codes)
[36, 162, 163, 165, 8364, 164]

if ist auch möglich

symbols = '$¢£¥€¤'
codes = [ord(symbol) for symbol in symbols if ord(symbol) < 200]
print(codes)
[36, 162, 163, 165, 164]

Zuweisung, die die Comprehension übersteht mit Walrus :=, diese enthält dann den letzten Wert

symbols = '$¢£¥€¤'
codes = [last := ord(symbol) for symbol in symbols if ord(symbol) < 200]
print(codes)
print(last)
[36, 162, 163, 165, 164]
164

Kartesische Produkte

colors = ['black', 'white']
sizes = ['S', 'M', 'L']
tshirts = [(color, size) for color in colors for size in sizes]
print(tshirts)
[('black', 'S'),
('black', 'M'),
('black', 'L'),
('white', 'S'),
('white', 'M'),
('white', 'L')]

Addieren und Multiplizieren

l = [1, 2, 3]
print(l + l)
print(l * 5)
print(5 * 'abcd')
[1, 2, 3, 1, 2, 3]
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
abcdabcdabcdabcdabcd