how to loop through list multiple times in Python
Question: Can you loop through list (using range that has a step in it) over and over
again until all the elements in the list are accessed by the loop?

I have the following lists:

    
    
    result = []
    list = ['ba', 'cb', 'dc', 'ed', 'gf', 'jh']
    

i want the outcome (result) to be:

    
    
    result = ['dc', 'cb', 'ba', 'jh', 'gf', 'ed']
    

How do i make it loop through the first list, and appending each element to
result list, starting from the third element and using 5 as a step, until all
the elements are in the results list?


Answer: There is no need to loop through a list multiple times.As a more pythonic way
You can use
[`itertools.cycle`](https://docs.python.org/3/library/itertools.html#itertools.cycle)
and
[`islice`](https://docs.python.org/3/library/itertools.html#itertools.islice)
:

    
    
    >>> from itertools import cycle,islice
    >>> li= ['ba', 'cb', 'dc', 'ed', 'gf', 'jh']
    >>> sl=islice(cycle(li),2,None,4)
    >>> [next(sl) for _ in range(len(li))]
    ['dc', 'ba', 'gf', 'dc', 'ba', 'gf']
    

Note that in your expected output the step is 5 not 4.So if you use 5 as slice
step you'll get your expected output :

    
    
    >>> sl=islice(cycle(li),2,None,5)
    >>> [next(sl) for _ in range(len(li))]
    ['dc', 'cb', 'ba', 'jh', 'gf', 'ed']
    

