2012-02-16 125 views
-2

我得到错误TypeError:'int'对象不是可订阅的 我应该怎么做才能解决它?Python - 不可订阅

def permutation(k, s): 
    r = s[:] 
    for j in range(2, len(s)+1): 
     r[j-1], r[k%j] = r[k%j], r[j-1] 
     k = k/j+1 
     return r 
+1

请提供完整的回溯。该错误似乎是在调用这个函数的代码中,所以请显示该代码。 (最可能的原因是你传入一个整数作为's',但给定的信息,这只是猜测。) – 2012-02-16 20:06:25

+0

这可能是一个格式错误引入时发布,但你的“返回r”是在一个不寻常的(在循环内,我的意思是)。 – DSM 2012-02-16 20:07:39

+0

要修复它,请不要下标int对象。为了得到更好的答案,请告诉我们您的输入是什么以及您的预期输出是什么。 – 2012-02-16 20:07:49

回答

1

这是怎么发生的?看起来可能是行r = s[:]是原因,并且如果s不是列表或元组,则会出现该错误。您可能要查看itertools.permutations

0

您可能传递了一个'int'对象作为s,该函数显然被当作一个列表/元组(或任何其他允许下标的对象)处理。你如何使用这个功能,它的目的/意图是什么?