1 #!/usr/bin/env python 2 3 """ 4 Enumeration-related functions. 5 6 Copyright (C) 2015, 2016, 2017 Paul Boddie <paul@boddie.org.uk> 7 8 This program is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free Software 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 12 13 This program is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 details. 17 18 You should have received a copy of the GNU General Public License along with 19 this program. If not, see <http://www.gnu.org/licenses/>. 20 """ 21 22 def enumerate(iterable, start=0): 23 24 """ 25 Iterate over 'iterable', obtaining items and combining them with position 26 information, producing a sequence containing tuples of the form 27 (position, item). The first position is indicated by 'start' (which is zero 28 by default) and each subsequent positions is incremented from the one 29 preceding it. 30 """ 31 32 l = [] 33 pos = start 34 35 for i in iterable: 36 l.append((pos, i)) 37 pos += 1 38 39 return l 40 41 # vim: tabstop=4 expandtab shiftwidth=4