Hapus karakter pertama dari sebuah string

166

Saya ingin menghapus karakter pertama dari sebuah string.

Misalnya, string saya dimulai dengan a :dan saya ingin menghapusnya saja. Ada beberapa kemunculan :dalam string yang tidak boleh dihapus.

Saya menulis kode saya dengan Python.

Hossein
sumber

Jawaban:

298

python 2.x

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

python 3.x

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

keduanya tercetak

dfa:sif:e
Sven Marnach
sumber
13
Jika ini adalah jawaban yang diterima maka pertanyaannya seharusnya "bagaimana cara menghapus karakter pertama dari sebuah string".
Spaceghost
1
@Spaceghost: OP menyatakan "Secara khusus saya ingin menghapus karakter pertama."
Sven Marnach
3
Anda benar, saya hanya merespons perbedaan antara judul dan isi pertanyaan .. Kalau dipikir-pikir, seharusnya menghabiskan waktu untuk minum kopi. :-)
Spaceghost
35

Masalahmu sepertinya tidak jelas. Anda mengatakan ingin menghapus "karakter dari posisi tertentu" lalu melanjutkan dengan mengatakan Anda ingin menghapus karakter tertentu.

Jika Anda hanya perlu menghapus karakter pertama yang akan Anda lakukan:

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

Jika Anda ingin menghapus karakter pada posisi tertentu, Anda harus:

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

Jika Anda perlu menghapus karakter tertentu, katakan ':', pertama kali ditemui dalam sebuah string maka Anda akan melakukannya:

s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))
Spaceghost
sumber
6
Contoh terakhir bisa lebih mudah dilakukan dengan menggunakan s.replace(":", "", 1)-
Sven Marnach
25

Bergantung pada struktur string, Anda dapat menggunakan lstrip:

str = str.lstrip(':')

Tapi ini akan menghapus semua titik dua di awal, yaitu jika Anda punya ::foo, hasilnya akan menjadi foo. Tetapi fungsi ini bermanfaat jika Anda juga memiliki string yang tidak dimulai dengan titik dua dan Anda tidak ingin menghapus karakter pertama.

Felix Kling
sumber
2

menghapus char:

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))

menghapus semua karakter yang ada di indeks; Anda dapat menggunakannya dalam kasus Anda dengandel_char(your_string, [0])

Semut
sumber