2010-12-01 20 views
2

文字列内の文字番号5を削除します。だから私はやった:Python:文字列から文字を削除する

デルライン[5]

となった: はTypeError:「strの」オブジェクトは、項目の削除

をサポートしていませんので、私は別の効率的なソリューションがにあるかどうかを疑問なし問題。

答えて

6

文字列はPythonでは不変なので、インプレースで変更することはできません。

しかし、もちろん、あなたが同じ識別子に戻って、文字列スライスの組み合わせを割り当てることができます。私は、同様の機能を使用

mystr = mystr[:5] + mystr[6:] 
+0

ありがとうございます!息をする。あなたの答えがpythonのエラーメッセージに統合されると想像してください。そのエラーメッセージがコミュニティウィキのようなものだった場合は画像を表示して、自分でそれを統合することができます。私は5分で答えを受け入れることができます。 – David

+0

@David:特定の基本的なPython型(特に[strings](http://docs.python.org/tutorial/introduction.html#strings)と[tuples](http://docs.python.org/)の不変性tutorial/datastructures.html#tuples-and-sequences))は、多くの新規参入者をその言語に邪魔するものですが、多くの意味があり、基本的なPythonのコンセプトです。結局のところ、整数値をインプレースで変更することはできません。これは基本的なPythonの知識と考えられています。エラーメッセージは私の味のために十分明確です。 –

+1

私はそれが明らかであることに同意する、誰もエラーメッセージですべてを書くことができない。しかし、すべてのエラーメッセージに、問題に関するすべての情報/解決策が含まれるwikiページへのWebリンクが含まれているかどうかを想像してください。 – David

1

def delstring(mystring, indexes): 
    return ''.join([let for ind, let in enumerate(mystring) if ind not in indexes]) 

インデックスを(反復可能でなければなりませんリスト、タプル..)

1

bytearrayは、場所を変更することができるタイプです。また、Python2.xを使用している場合は、デフォルトのstrの型(バイト)に変換することができます。

b=bytearray(s) 
del b[5] 
s=str(b) 
関連する問題