Python 如何修复“功能失调”;在;for循环中的方法?

Python 如何修复“功能失调”;在;for循环中的方法?,python,for-loop,infinite-loop,nested-lists,Python,For Loop,Infinite Loop,Nested Lists,我有一个学校的项目。我们有石头的坐标,坐标以列表格式给出,[[x1,y1],[x2,y2],…]。代码的一部分是旋转石头,在到达初始位置之前,这可能会发生多达6次。这是代码的一部分 def set(self,stone,x,y): s1=[x,y] self.rotations.append(stone) . . . some code . . . else: h = [] for j

我有一个学校的项目。我们有石头的坐标,坐标以列表格式给出,
[[x1,y1],[x2,y2],…]
。代码的一部分是旋转石头,在到达初始位置之前,这可能会发生多达6次。这是代码的一部分

def set(self,stone,x,y):
    s1=[x,y]
    self.rotations.append(stone)
    .
    .
    .
    some code
    .
    .
    .
    else:
       h = []
         for j in stone:
         h.append(self.rotateRight(j[0], j[1]))
       if h not in self.rotations:
         h = self.shift(h, s1)
         return self.set(h,s1[0],s1[1])
       else:
         return []

我正在努力解决的问题是,如果h不在自转中,则为
。如果输入是例如
[[x1,y1],[x2,y2],[x3,y3]
它工作,但是一旦有6个或更多的子列表,它就无法检测到在6次旋转后石头与最初的位置相同,并且总是将
If
语句计算为
True
,因此它永远不会脱离
返回self.set
。我也试过
h!=self.rotations[0]
,但它也不起作用。尽管如此,如果我在6次旋转后手动复制
h
self.rotations[0]
,并将
=
放在它们之间,它会将其评估为
True
。有人知道如何修复它,使它不会无限循环吗?

请检查石头中j的缩进
:h.append(self.rotateRight(j[0],j[1])
。请提供一个。请检查石头中j的缩进
:h.append(self.rotateRight(j[0],j[1])
。请提供一个。