from operator import mul
from itertools import izip, imap, count, cycle
from functools import partial

lang = ['Python', 'Scheme', 'Haskell']
nums = izip(imap(partial(mul, 2), count()), lang)
ages = izip(cycle(['new', 'old']), lang)
print list(nums)
print list(ages)

# output
# [(0, 'Python'), (2, 'Scheme'), (4, 'Haskell')]
# [('new', 'Python'), ('old', 'Scheme'), 
#  ('new', 'Haskell')]

