Python |加入列表中的循环
有时,在处理竞争性编程中的图形问题时,我们有一个对的列表,我们需要找到其中是否有可能的循环,并打印该循环中的所有元素。让我们讨论一下解决这个问题的某些方法。
方法:使用 yield + loop + generator 要执行的蛮力方法是使用一个生成器,如果我们知道元素肯定会形成一个循环,就一直打印值,这是通过无限循环并在没有找到更多匹配时停止来完成的。
# 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
版权属于:月萌API www.moonapi.com,转载请注明出处