13 September, 2016

Listen

  • Listen enthalten beliebige Daten unterschiedlicher Datentypen.
  • Listen sind nicht identisch zu Arrays in anderen Programmiersprachen
  • Listen sind extrem mächtig in Python insbesondere durch die Slice Operationen

Die wichtigsten Listen-Operationen finden Sie unter: https://docs.python.org/3.4/tutorial/datastructures.html

Listen Slice

Syntax:

somelist[start:end]

Bsp:

a = ['a', 'b', 'c' , 'd', 'e', 'f', 'g', 'h']
print('ersten vier:', a[:4])
print('letzten vier:', a[-4:])
print('mittlere zwei:', a[3:-3])
## ersten vier: ['a', 'b', 'c', 'd']
## letzten vier: ['e', 'f', 'g', 'h']
## mittlere zwei: ['d', 'e']

Listen Slice and Stride

Syntax:

somelist[start:end:stride]

Bsp:

a = ['a', 'b', 'c' , 'd', 'e', 'f', 'g', 'h']
print('geraden:', a[::2])
print('gerade:', a[1::2])
print('umgedreht:', a[::-1])
## geraden: ['a', 'c', 'e', 'g']
## gerade: ['b', 'd', 'f', 'h']
## umgedreht: ['h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']

Achtung: Verwenden Sie stride möglichst selten und wenn nur entweder mit start oder end aber nicht mit beidem.

Sets

Sind eine ungeordnete Collection von Elementen ohne Duplikate.

Bsp:

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
print('orange' in basket )
## {'apple', 'orange', 'pear', 'banana'}
## True

Sets 2

a = set('abracadabra')
b = set('alacazam')
print(a)
print(b)
print(a - b)
print(a | b)
print(a & b )
print(a ^ b)
## {'a', 'b', 'r', 'd', 'c'}
## {'c', 'z', 'a', 'm', 'l'}
## {'b', 'r', 'd'}
## {'c', 'l', 'b', 'm', 'z', 'r', 'a', 'd'}
## {'a', 'c'}
## {'l', 'b', 'm', 'z', 'r', 'd'}

Dictionaries

Im Vergleich zu Listen werden Dictionaries mit keys indiziert. Keys können Zahlen und Strings verwendet werden.

Bsp:

dic = {'apple': 10, 'orange': 15, 'pear':50}
print(dic)
print(dic['apple'])
print('orange' in dic )
## {'apple': 10, 'orange': 15, 'pear': 50}
## 10
## True

Coole Loops

Mit items() kann über ein Dictionary geloopt werden und sowohl der key als auch der value ausgelesen werden.

dic = {'apple': 10, 'orange': 15, 'pear':50}
for k, v in dic.items():
    print(k, 'kostet', v)
## apple kostet 10
## pear kostet 50
## orange kostet 15
for i, v in enumerate(['eins', 'zwei', 'drei']):
  print(i, v)
## 0 eins
## 1 zwei
## 2 drei

List Comprehensions

Werden verwendt um neue Listen zu erzeugen. Häufig wird es verwendet um eine neue Liste aus einer existierenden Liste zu erzeugen, auf welche eine Operation ausgeführt wird.

squares = []
for x in range(10):
   squares.append(x**2)
print(squares)   
## [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
squares = [x**2 for x in range(10)]
print(squares)
## [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]