文字列の最初の文字を削除します


166

文字列の最初の文字を削除したいのですが。

たとえば、私の文字列はa :で始まり、それだけを削除したいとします。:削除してはならない文字列がにいくつかあります。

Pythonでコードを書いています。

回答:


298

python 2.x

s = ":dfa:sif:e"
print s[1:]

python 3.x

s = ":dfa:sif:e"
print(s[1:])

両方のプリント

dfa:sif:e

13
これが受け入れられた回答である場合、質問は「文字列の最初の文字を削除する方法」でした。
Spaceghost

1
@Spaceghost:OPは「具体的には最初の文字を削除したい」と述べています。
Sven Marnach、2011

3
正解です。私は、タイトルと質問の本文の違いに対応していました。後で考えてみると、コーヒーを手に入れるのに時間を費やしていたはずです。:-)
Spaceghost

35

あなたの問題は不明瞭なようです。「特定の位置からの文字」を削除したいと言ってから、特定の文字を削除したいと言います。

最初の文字だけを削除する必要がある場合は、次のようにします。

s = ":dfa:sif:e"
fixed = s[1:]

特定の位置の文字を削除する場合は、次のようにします。

s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]

特定の文字、たとえば「:」を削除する必要がある場合は、文字列内でその文字に初めて遭遇したときに、次のようにします。

s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))

6
最後の例より簡単に使用して行うことができるs.replace(":", "", 1)-
スヴェンMarnach

25

文字列の構造に応じて、以下を使用できますlstrip

str = str.lstrip(':')

しかし、これにより最初にすべてのコロンが削除され::fooますfoo。つまり、もしあれば、結果はになります。ただし、この関数は、コロンで始まらない文字列もあり、最初の文字を削除したくない場合に役立ちます。


2

文字を削除する:

def del_char(string, indexes):

    'deletes all the indexes from the string and returns the new one'

    return ''.join((char for idx, char in enumerate(string) if idx not in indexes))

インデックスにあるすべての文字を削除します。あなたはあなたのケースでそれを使うことができますdel_char(your_string, [0])

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.