Beispiel #1
0
def single(iterable, pred=None, default=_undefined):
    iterator = iter(where(iterable, pred))
    try:
        result = compatible.next(iterator)
    except StopIteration:
        if default is not _undefined:
            return default
        raise LookupError('enumerable contains no matching element')
    else:
        try:
            compatible.next(iterator)
            raise LookupError('enumerable contains more than one element')
        except StopIteration:
            return result
Beispiel #2
0
def elementat(iterable, index, default=_undefined):
    try:
        return compatible.next(iter(skip(iterable, index)), default)
    except StopIteration:
        raise IndexError('enuemrable index out of range')