Commit be45dbd3 authored by Andreas Zeidler's avatar Andreas Zeidler

back-port c118896 from 2.13

parent 410714c3
...@@ -134,20 +134,16 @@ class LazyMap(Lazy): ...@@ -134,20 +134,16 @@ class LazyMap(Lazy):
def __init__(self, func, seq, length=None): def __init__(self, func, seq, length=None):
self._seq=seq self._seq=seq
self._data={}
self._func=func self._func=func
if length is not None: self._len=length if length is not None: self._len=length
else: self._len = len(seq) else: self._len = len(seq)
self._marker = object()
self._data = [self._marker] * self._len
def __getitem__(self,index): def __getitem__(self,index):
data=self._data data=self._data
try: s=self._seq if index in data:
except AttributeError: return data[index] return data[index]
value = data[index] = self._func(self._seq[index])
value = data[index]
if value is self._marker:
value = data[index] = self._func(s[index])
return value return value
class LazyFilter(Lazy): class LazyFilter(Lazy):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment