Code: Alles auswählen
def map(func, *iterables):
return [func(*el) for el in zip(*iterables)]
def enumerate(iterable, start=0):
i=start
for el in iterable:
yield i, el
i+=1
Das Schreiben, dass sie »unsupported« sind, dauert da wahrscheinlich länger.
Wobei zip mit einem Argument tut, und max,min den key einfach ignorieren anstatt eine ordentliche Fehlermeldung zu melden.http://www.codeskulptor.org/docs.html hat geschrieben:Unsupported Sequence & Iterable Operations
max() and min() with key argument. zip() with one argument. map() filter() reduce()
Der Code sieht etwas umständlich aus, aber es gibt noch weitere Einschränkungen:
Code: Alles auswählen
def max(*args, **kw):
if kw and 'key' not in kw:
raise TypeError("max() got an unexpected keyword argument")
if len(args)==1:
args=args[0]
if not args:
raise ValueError("max() arg is an empty sequence")
key = kw.get('key', lambda x: x)
max_k = undef = []
for el in args:
k = key(el)
if max_k is undef or max_k<k: max_el, max_k = el, k
return max_el
def filter(func, seq):
if func is None: func=bool
result = [func(el) for el in seq]
if isinstance(seq,str):
return ''.join(result)
if isinstance(seq,tuple):
return tuple(result)
return result