2012-02-16 122 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,該函數顯然被當作一個列表/元組(或任何其他允許下標的對象)處理。你如何使用這個功能,它的目的/意圖是什麼?