enumerate( iterable )

Printing List via for-loop
>>> my_alphabet_list = list('abcdefghijklmnopqrstuvwxyz')
>>> count = 0
>>> for letter in my_alphabet_list: 
...        print('{}: {}'.format(count, letter))
...        count += 1
...
a,b,c,d, ... ,z

 

enumerate( )

It’s a function that uses the for loop to iterate through an iterable, using a Tuple of 2 items: index and value of the iterable.

>>> for index, letter in enumerate(my_alphabet_list):
...        print('{}: {}'.format(index, letter))
...
a,b,c,d, ... ,z

Here, step is a packed Tuple.

>>> for step in enumerate(my_alphabet_list):
...        print('{}: {}'.format(step[0], step[1]))
...
a,b,c,d, ... ,z

 

Unpacking Operators * and **

*  for Tuples & Lists , **  for Dictionaries

>>> for step in enumerate(my_alphabet_list):
...        print('{}: {}'.format(*step))
...
a,b,c,d, ... ,z

dict.items( )

Similar to enumerate( ), Dictionaries have items( ).
When looping through dictionaries, the key and corresponding value can be retrieved at the same time using the items( ) method.

>>> my_dict = {'name': 'Kenneth', 'job': 'Teacher', 'employer': 'Treehouse'}
>>> for key, value in my_dict.items()
...        print('{}: {}'.format(key.title(), value))
...
Name: Kenneth
Employer: Treehouse
Job: Teacher

EXERCISE

Create a function that takes 2 iterables and returns a list of tuples, where each item of each iterable is combined in those tuples.

def combo(iterable1, iterable2):
  my_tuple = []
  for index, item in enumerate(iterable1):
    my_tuple.append( (iterable1[index], iterable2[index]) )
  return my_tuple

my_alphabet = list("abcdefghijklmnopqrstuvwxyz")
my_numbers = list("12345678901234567890123456")
print(combo(my_numbers, my_alphabet))

Output:

[('1', 'a'), ('2', 'b'), ('3', 'c'), ..., ('6', 'z')]