(c) 2023 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]
for char in reverse("golf"):
print(char)
f l o g
gen = reverse("01234")
gen
<generator object reverse at 0x7ff5584b90f8>
next(gen)
'4'
next(gen)
'3'
next(gen)
'2'
next(gen)
'1'
next(gen)
'0'
next(gen)
--------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-8-8a6233884a6c> in <module>() ----> 1 next(gen) StopIteration:
lc = [x for x in range(10) if x%2 == 0]
lc
[0, 2, 4, 6, 8]
ga = (x for x in range(10) if x%2 == 0)
ga
<generator object <genexpr> at 0x7ff5584c73b8>
for i in ga:
print(i)
0 2 4 6 8
s = sum(x for x in range(10) if x%2 == 0)
s
20
from math import pi, sin
sinus_tabelle = {x:sin(x*pi/180) for x in range(0,46)}
sinus_tabelle
{0: 0.0, 1: 0.01745240643728351, 2: 0.03489949670250097, 3: 0.05233595624294383, 4: 0.0697564737441253, 5: 0.08715574274765817, 6: 0.10452846326765346, 7: 0.12186934340514748, 8: 0.13917310096006544, 9: 0.15643446504023087, 10: 0.17364817766693033, 11: 0.1908089953765448, 12: 0.20791169081775931, 13: 0.224951054343865, 14: 0.24192189559966773, 15: 0.25881904510252074, 16: 0.27563735581699916, 17: 0.29237170472273677, 18: 0.3090169943749474, 19: 0.32556815445715664, 20: 0.3420201433256687, 21: 0.35836794954530027, 22: 0.374606593415912, 23: 0.3907311284892737, 24: 0.40673664307580015, 25: 0.42261826174069944, 26: 0.4383711467890774, 27: 0.45399049973954675, 28: 0.4694715627858908, 29: 0.48480962024633706, 30: 0.49999999999999994, 31: 0.5150380749100542, 32: 0.5299192642332049, 33: 0.5446390350150271, 34: 0.5591929034707469, 35: 0.573576436351046, 36: 0.5877852522924731, 37: 0.6018150231520483, 38: 0.6156614753256582, 39: 0.6293203910498374, 40: 0.6427876096865393, 41: 0.6560590289905072, 42: 0.6691306063588582, 43: 0.6819983600624985, 44: 0.6946583704589973, 45: 0.7071067811865475}
for i in sinus_tabelle:
print(i)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
from pygal import XY
from IPython.display import SVG
sinus_tabelle_als_liste = [(x,sin(x*pi/180)) for x in range(0,361)]
xy = XY()
xy.add("y=sin(x*pi/180)", sinus_tabelle_als_liste)
SVG(xy.render())
line_liste = [" line 1\n", "line 2 \n", "\n"]
stripped_generator = (line.strip() for line in line_liste)
stripped_generator
<generator object <genexpr> at 0x7ff54ac7ddb0>
for x in stripped_generator:
print("<{}>".format(x))
<line 1> <line 2> <>
stripped_list = [line.strip() for line in line_liste]
stripped_list
['line 1', 'line 2', '']
seq1 = "abc"
seq2 = (1,2,3)
z = [(x,y) for x in seq1 for y in seq2]
z
[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]
[x,y for x in seq1 for y in seq2]
File "<ipython-input-23-9fc9191dedc1>", line 1 [x,y for x in seq1 for y in seq2] ^ SyntaxError: invalid syntax
def inorder(t):
if t:
for x in inorder(t.left):
yield x
yield t.label
for x in inorder(t.right):
yield x
class Tree:
def __init__(self, label, left=None, right=None):
self.label = label
self.left = left
self.right = right
def __repr__(self, level=0, indent=" "):
s = level*indent + repr(self.label)
if self.left:
s += "\n" + self.left.__repr__(level+1, indent)
if self.right:
s += "\n" + self.right.__repr__(level+1, indent)
return s
def __iter__(self):
return inorder(self)
def tree(list):
n = len(list)
if n == 0:
return []
i = n // 2
return Tree(list[i], tree(list[:i]), tree(list[i+1:]))
t = tree("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
print(t)
'N' 'G' 'D' 'B' 'A' 'C' 'F' 'E' 'K' 'I' 'H' 'J' 'M' 'L' 'U' 'R' 'P' 'O' 'Q' 'T' 'S' 'X' 'W' 'V' 'Z' 'Y'
for x in t:
print(x,end="")
ABCDEFGHIJKLMNOPQRSTUVWXYZ
def counter(maximum):
i = 0
while i < maximum:
val = (yield i)
if val is not None:
i = val
else:
i += 1
gen = counter(10)
gen
<generator object counter at 0x7ff55fd34db0>
next(gen)
0
next(gen)
1
gen.send(8)
8
next(gen)
9
next(gen)
--------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-40-8a6233884a6c> in <module>() ----> 1 next(gen) StopIteration: