BuK/IIm20/Vorlesung 2 Grüning/Hilbert Python
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Python</language>
<code id="60717516e7a6a">
def take(seq, n):
result = []
try:
for i in range(n):
result.append(next(seq))
except StopIteration:
pass
return result
class stream:
def make_stream(self):
n = 0
while True:
yield n
n += 1
def __init__(self):
self.li = []
self.stream = self.make_stream()
def anext(self):
item = next(self.stream)
self.li.append(item)
return item
def next_until(self, n):
if n < len(self.li):
return self.li[n - 1]
else:
item = None
while n > len(self.li):
item = self.anext()
return item
def get(self, n):
if n >= len(self.li):
return self.next_until(n)
else:
return self.li[n - 1]
def get_finite(self):
return self.li
def set(self, n, value):
self.get(n)
self.li[n - 1] = value
</code>
<run id="60717516e7ad8">
s = stream()
for i in range(10):
print(s.anext())
s.set(40, False)
print(s.get_finite())
</run>