-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
我得到錯誤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
這是怎麼發生的?看起來可能是行r = s[:]
是原因,並且如果s
不是列表或元組,則會出現該錯誤。您可能要查看itertools.permutations
。
您可能傳遞了一個'int'對象作爲s
,該函數顯然被當作一個列表/元組(或任何其他允許下標的對象)處理。你如何使用這個功能,它的目的/意圖是什麼?
請提供完整的回溯。該錯誤似乎是在調用這個函數的代碼中,所以請顯示該代碼。 (最可能的原因是你傳入一個整數作爲's',但給定的信息,這只是猜測。) – 2012-02-16 20:06:25
這可能是一個格式錯誤引入時發佈,但你的「返回r」是在一個不尋常的(在循環內,我的意思是)。 – DSM 2012-02-16 20:07:39
要修復它,請不要下標int對象。爲了得到更好的答案,請告訴我們您的輸入是什麼以及您的預期輸出是什麼。 – 2012-02-16 20:07:49