2012-04-14 152 views
1

這是我到目前爲止。這是作業。我們不能使用切片。我似乎無法弄清楚。試圖插入一個字符串到另一個字符串的x位置

def insert(s1, s2, pos): 
    s3 = list(s1) 
    for i,s in enumerate(s3): 
     if i == pos: 
      s3[pos + 1] = s 
      s3[i] = s2 
    "".join(s3)  
    return s3 

利用上述,串s1的最後一個字符被刪除和join方法並不接合s3成一個字符串。

回答

3

通知行

"".join(s3)  
return s3 

如果你看一下the join documentation,你會看到加入不修改其參數,而是生成包含參數列表中的內容的字符串,所有連接在一起。所以,你把自己的結果

"".join(s3) 

並返回s3(列表)來代替。所以,你需要將最後兩行更改爲

return ''.join(s3) 

由於這是家庭作業,我不會對代碼的其餘部分發表評論,但返回加入調用的結果有一定的幫助。

+0

DEF插入(S1,S2,POS): S3 =列表(S1) 爲I,S在枚舉(S3): 如果我== POS: s3.insert(I,S2) 返回' '.join(s3) 感謝您的加入提示。它打我我可以使用插入,但我不知道我的教授是否會允許它是合法的。當我們使用內置的方法時教授討厭。 – VPNTIME 2012-04-14 00:53:13

+0

好吧,我想他反對使用'sort()'這樣的方法,因爲可以在Python中使用列表理解和一些'if'語句在1行中寫一個非常簡單的排序算法。我不確定在這種情況下如何在不使用插入或任何其他內置方法的情況下將元素插入到列表中。現在,如果他不允許插入,他必須瘋了,因爲'insert'是人們用來在'list'上操作的高級API /方法。 – CppLearner 2012-04-14 01:10:48

+0

我認爲Python語句的定義涉及到一個'NEWLINE'終止。沒有多個'NEWLINE'就不能有多個語句。你所指的是「條件表達式」。只是一些術語:P教授並不瘋狂。我認爲在語言中不使用某些庫功能是非常標準的,除非你瞭解他們做了什麼/他們是如何做的概述。爲什麼你會教各種類型,算法和數據結構的實現,而不是隻列出它們的各種運行時間? – 2012-04-14 02:37:14

相關問題