如何在python中检查2个列表是否具有相同的循环次序?

时间:2017-11-13 23:43:26

标签: python-3.x

def cyclic(lst1,lst2):
    a=lst1
    b=lst2
    if a == b:
        return True
    if a != b:
        return False

嗨,我正在用Python编写一个函数,它检查2个列表(lst1,lst2)是否具有相同的循环次序。 [如果是 - 该函数返回True,如果不是 - 它返回False]。 我已经设法检查天气列表是否相同。 但我需要检查循环次序。例如:[0,1,2,3] 并且[3,0,1,2]应该返回True,而[0,1,2,3]和[3,1,0,2]应该返回false。

非常感谢!

1 个答案:

答案 0 :(得分:0)

def cyclic(l1, l2):
    if len(l1) != len(l2):
        return False
    if not l1:
        return True
    a = l1[0]
    for i, x in enumerate(l2):
        if a == x:
            if l1 == l2[i:] + l2[:i]:
                return True
    return False

在这里,我们浏览l2的元素,寻找与l1[0]匹配的元素。当我们找到一个时,我们旋转列表,使元素位于前面,然后比较两个列表。