2012-04-14 16 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) 

に最後の2行を変更する必要があります

+0

はデフ(S1、S2、POS)を挿入: S3 =リスト(S1) を私のために、列挙(S3)に(S) 場合、私== POS: s3.insert(I、S2) 復帰 " '.join(s3) 参加のヒントをありがとう。それは私が挿入を使用することができる私に当たったが、私の教授が合法であることを許可するかどうかわからない。教授は組み込みメソッドを使用するときには嫌いです。 – VPNTIME

+0

私は彼が 'sort()'のようなメソッドを使うことに反対していると思います。なぜなら、リスト内包と一部の 'if'文を使ってPythonのちょうど1行に本当に単純なソートアルゴリズムを書くことができるからです。この場合、インサートやその他のビルトインメソッドを使用せずに要素をリストに挿入する方法がわかりません。今、彼が挿入を許可しない場合、 'insert'は人々が' list'で操作するために使用する高水準のAPI /メソッドであるため、彼は狂っている必要があります。 – CppLearner

+0

私はPython文の定義には 'NEWLINE'終了が必要だと思います。複数の 'NEWLINE'がなければ、複数のステートメントを持つことはできません。あなたが言及しているのは、「条件式」です。ちょっとした用語:Pそして教授は狂っていません。私はあなたが彼らが何をしているか理解しているか、彼らのやり方の概要を理解するまで、言語の中で特定のライブラリ機能を使用しないことはかなり標準的だと思います。さまざまな種類の実行時間をリストするのではなく、さまざまな種類、アルゴリズム、データ構造の実装を教えてください。 –

関連する問題