def permutationEquation(p):
result=[]
for i in range(1,len(p)+1):
result.append(list(y+1 for y,v in enumerate(p) if(p[v-1]==i)))
如果条件满足,如何打破一次。 我不想要另一个for循环,我希望代码很简单。 以及如何使结果列表成为单个维度。 现在列表是[[1],[2],[3]] 我希望它为[1,2,3]
答案 0 :(得分:3)
这很简单,您只需将其转换为"message": "Variable \"$rolls\" of type \"Int\" used in position expecting type \"Int!\"."
循环。
您不需要for循环的事实是您将要处理的事情。
for
答案 1 :(得分:2)
如果输入p
是一个排列,那么你的函数计算的是p
到2的幂,或者排列的倒数的平方。这可以用线性时间计算(排列大小的线性),而你的代码使用二次时间。
我还建议在排列中使用数字0,1,...,n-1,因为这与Python基于0的索引相比更好。使用这些更简单的数字时,这里有一个更简单的功能来解决您的问题:
def permutationEquation(p):
inv = [None] * len(p)
for i, x in enumerate(p):
inv[x] = i
return [inv[x] for x in inv]