# -*- coding: utf-8 -*- #!/usr/bin/env python def locations(subseq, seq): locs = [] i = 0 for elem in seq: if elem == subseq: locs.append(i) i += 1 return locs def ngrams(s,n): """ >>> ngrams('abcddlagk', 3) ['abc', 'bcd', 'cdd', 'ddl', 'dla', 'lag', 'agk'] >>> ngrams('abcde', 2) [('ab'), ('bc'), ('cd'), ('de')] """ return [tuple(s[i:i+n]) for i in range(len(s)-n+1)] def bigrams(s): return ngrams(s,2) def offsets(seq): """ return the intervals between the elements in list of ints. >>> offsets([1, 3, 5]) [2, 2] """ offs = [] def _test(): import doctest import chardist myoptionflags = doctest.ELLIPSIS|doctest.NORMALIZE_WHITESPACE doctest.testmod(optionflags=myoptionflags) if __name__ == "__main__": _test()