def popAt(self, index): if index >= 0 and index < len(self.Stacks): result = self.Stacks[index].pop() arrs = [] newIndex = index while newIndex < len(self.Stacks): arr = self.Stacks[newIndex].returnAsArray() arrs.append(arr) newIndex += 1 #print(arrs) newIndex = 0 while newIndex < len(arrs): j = index + 1 if j < len(arrs): itemToAdd = arrs[j].pop(0) # print(itemToAdd, arrs[j]) arrs[newIndex].append(itemToAdd) stack = Stack() stack.generateFromArray(arrs[newIndex]) self.Stacks[index] = stack newIndex += 1 index += 1 #print (arrs) return result else: raise Exception("Bad Index")