Skip to content
Related Articles

Related Articles

Improve Article

Python | Join cycle in list

  • Last Updated : 27 Aug, 2019

Sometimes, while dealing with graph problems in competitive programming, we have a list of pairs and we need to find if there is a possible cycle in it, and print all the elements in that cycle. Let’s discuss certain way in which this problem can be tackled.

Method : Using yield + loop + generator
The brute method to perform is to use a generator and keep printing the value if we know that the elements surely form a cycle and this is done by infinite loop and stopping when no more matches are found.

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course




# Python3 code to demonstrate working of
# Join cycle in list
# Using yield + loop + generator
  
# helper function to perform this task 
def cycle(test_list, val, stop = None):
    temp = dict(test_list)
    stop = stop if stop is not None else val
    while True:
        yield (val)
        val = temp.get(val, stop)
        if val == stop: break
  
# initializing list
test_list = [[6, 7], [9, 6], [7, 9]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Join cycle in list
# Using yield + loop + generator
# printing result
print("The cycle elements are : ")
for ele in cycle(test_list, 6):
    print(ele)
Output :
The original list is : [[6, 7], [9, 6], [7, 9]]
The cycle elements are : 
6
7
9
My Personal Notes arrow_drop_up
Recommended Articles
Page :