Listelerin Sıralamalarının Aynı Olup Olmadığını Kontrol Etme

Örneğin elinizde uzunlukları eşit olan liste1 ve liste2 adında listeler var. Bu listelerin başı veya sonu önemsenmeden sıralamalarının aynı olup olmadığını bool tipinde veren bir fonksiyonu nasıl yazarsınız?

Örnek:

ayni_mi([1, 2, 3], [2, 3, 1]) # True
ayni_mi([2, 4, 5, 1, 2], [1, 2, 2, 4, 5]) # True
ayni_mi([1, 2, 3], [2, 1, 3]) # False

Aşağıdaki kodlar işinizi görüyor mu?

f = lambda x, y: any(y[i:] + y[:i] == x for i in range(len(x)))

f([1, 2, 3], [2, 3, 1]) # True
f([2, 4, 5, 1, 2], [1, 2, 2, 4, 5]) # True
f([1, 2, 3], [2, 1, 3]) # False
4 Beğeni