2017-04-01 75 views
-1

我在python 中製作anagram,但是當我調用'list'function時,它不起作用。請幫忙。 我正在嘗試將'str'更改爲'list' ,但它不起作用。我真的不知道爲什麼列表中的Python類型錯誤

def generate_anagram(s): 
    a=s[0:len(s)-1] 
    b=s[len(s)-1] 
    if len(a)==1: 
     return make(a,b) 
    else: 
     return make(generate_anagram(a),b) 

def make(s1,s2): 
    list=[] 
    l=len(s1) 
    q=list(s1) 
    w=list(s2) 
    ss="" 
    for i in range(l): 
     if(len(q)>l): 
      q.remove(w) 
     q.insert(i,w) 
     list+=q 

    for i in range(len(list)): 
     ss+=list[i] 
    return ss 


if __name__ == "__main__": 

    print(generate_anagram("anagram")) 
+0

因爲你用變量名「list」覆蓋了內建函數list()' – TerryA

回答

0

代碼

list=[] 
l=len(s1) 
q=list(s1) 
w=list(s2) 

是問題,因爲第一行會「隱藏」通過創建一個名爲list一個局部變量的標準功能list。這意味着最後兩行不會調用Python的list函數。

+0

真的很感謝你。 – babababam

+0

我可以再問一次嗎?我想要'列表[我]''str',但是,ss + = list [i] dosen't工作..我如何使列表類型爲str類型? – babababam

+0

@babababam:在Python''「」.join(L)'其中'L'是字符列表連接所有這些字符並返回結果字符串。 – 6502