![]() ![]() Remember only the element just seen." # unique_justseen('AAAABBBCCDAABBB') -> A B C D A B # unique_justseen('ABBCcAD', str.lower) -> A B C A D return imap ( next, imap ( itemgetter ( 1 ), groupby ( iterable, key ))) def iter_except ( func, exception, first = None ): """ Call a function repeatedly until an exception is raised. _contains_, iterable ): seen_add ( element ) yield element else : for element in iterable : k = key ( element ) if k not in seen : seen_add ( k ) yield element def unique_justseen ( iterable, key = None ): "List unique elements, preserving order. add if key is None : for element in ifilterfalse ( seen. Remember all elements ever seen." # unique_everseen('AAAABBBCCDAABBB') -> A B C D # unique_everseen('ABBCcAD', str.lower) -> A B C D seen = set () seen_add = seen. from_iterable ( combinations ( s, r ) for r in range ( len ( s ) + 1 )) def unique_everseen ( iterable, key = None ): "List unique elements, preserving order. next for it in iterables ) while pending : try : for next in nexts : yield next () except StopIteration : pending -= 1 nexts = cycle ( islice ( nexts, pending )) def powerset ( iterable ): "powerset() -> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list ( iterable ) return chain. " a, b = tee ( iterable ) next ( b, None ) return izip ( a, b ) def grouper ( iterable, n, fillvalue = None ): "Collect data into fixed-length chunks or blocks" # grouper('ABCDEFG', 3, 'x') -> ABC DEF Gxx args = * n return izip_longest ( fillvalue = fillvalue, * args ) def roundrobin ( * iterables ): "roundrobin('ABC', 'D', 'EF') -> A D E B F C" # Recipe credited to George Sakkis pending = len ( iterables ) nexts = cycle ( iter ( it ). Example: repeatfunc(random.random) """ if times is None : return starmap ( func, repeat ( args )) return starmap ( func, repeat ( args, times )) def pairwise ( iterable ): "s -> (s0,s1), (s1,s2), (s2, s3). ![]() from_iterable ( listOfLists ) def repeatfunc ( func, times = None, * args ): """Repeat calls to func with specified arguments. mul, vec1, vec2 )) def flatten ( listOfLists ): "Flatten one level of nesting" return chain. from_iterable ( repeat ( tuple ( iterable ), n )) def dotproduct ( vec1, vec2 ): return sum ( imap ( operator. """ return chain ( iterable, repeat ( None )) def ncycles ( iterable, n ): "Returns the sequence elements n times" return chain. Useful for emulating the behavior of the built-in map() function. deque ( iterator, maxlen = 0 ) else : # advance to the empty slice starting at position n next ( islice ( iterator, n, n ), None ) def nth ( iterable, n, default = None ): "Returns the nth item or a default value" return next ( islice ( iterable, n, None ), default ) def all_equal ( iterable ): "Returns True if all the elements are equal to each other" g = groupby ( iterable ) return next ( g, True ) and not next ( g, False ) def quantify ( iterable, pred = bool ): "Count how many times the predicate is true" return sum ( imap ( pred, iterable )) def padnone ( iterable ): """Returns the sequence elements and then returns None indefinitely. if n is None : # feed the entire iterator into a zero-length deque collections. If n is None, consume entirely." # Use functions that consume iterators at C speed. " return imap ( function, count ( start )) def consume ( iterator, n = None ): "Advance the iterator n-steps ahead. Izip_longest('ABCD', 'xy', fillvalue='-') -> Ax By C- D-ĪA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DDĭef take ( n, iterable ): "Return first n items of the iterable as a list" return list ( islice ( iterable, n )) def tabulate ( function, start = 0 ): "Return function(0), function(1).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |