Ada string, misalnya. EXAMPLE.
Bagaimana saya bisa menghapus karakter tengah, yaitu, M dari itu? Saya tidak butuh kode. Saya ingin tahu:
- Apakah string dalam Python diakhiri dengan karakter khusus?
- Mana cara yang lebih baik - menggeser semuanya dari kanan ke kiri mulai dari karakter tengah OR pembuatan string baru dan tidak menyalin karakter tengah?
Dalam Python, string tidak dapat diubah, jadi Anda harus membuat string baru. Anda memiliki beberapa opsi cara membuat string baru. Jika Anda ingin menghapus 'M' di mana pun itu muncul:
newstr = oldstr.replace("M", "")Jika Anda ingin menghapus karakter sentral:
midlen = len(oldstr)/2 newstr = oldstr[:midlen] + oldstr[midlen+1:]Anda bertanya apakah string diakhiri dengan karakter khusus. Tidak, Anda berpikir seperti seorang programmer C. Dalam Python, string disimpan dengan panjangnya, sehingga nilai byte apa pun, termasuk \0, dapat muncul dalam sebuah string.
Ini mungkin cara terbaik:
original = "EXAMPLE" removed = original.replace("M", "")Jangan khawatir tentang pengalihan karakter dan semacamnya. Sebagian besar kode Python terjadi pada tingkat abstraksi yang jauh lebih tinggi.
Untuk mengganti posisi tertentu:
s = s[:pos] + s[(pos+1):]Untuk mengganti karakter tertentu:
s = s.replace('M','')String tidak berubah. Tetapi Anda bisa mengonversinya menjadi daftar, yang bisa berubah-ubah, dan kemudian mengonversi daftar kembali ke string setelah Anda mengubahnya.
s = "this is a string" l = list(s) # convert to list l[1] = "" # "delete" letter h (the item actually still exists but is empty) l[1:2] = [] # really delete letter h (the item is actually removed from the list) del(l[1]) # another way to delete it p = l.index("a") # find position of the letter "a" del(l[p]) # delete it s = "".join(l) # convert back to stringAnda juga dapat membuat string baru, seperti yang ditunjukkan orang lain, dengan mengambil semua kecuali karakter yang Anda inginkan dari string yang ada.
Bagaimana saya bisa menghapus karakter tengah, mis., M dari itu?
Anda tidak bisa, karena string dalam Python adalah tidak berubah .
Apakah string dalam Python diakhiri dengan karakter khusus?
Tidak. Mereka mirip dengan daftar karakter; panjang daftar menentukan panjang string, dan tidak ada karakter yang bertindak sebagai terminator.
Mana cara yang lebih baik - menggeser semuanya dari kanan ke kiri mulai dari karakter tengah OR pembuatan string baru dan tidak menyalin karakter tengah?
Anda tidak dapat mengubah string yang ada, jadi Anda harus membuat yang baru yang berisi semuanya kecuali karakter tengah.
Gunakan metode translate() :
>>> s = 'EXAMPLE' >>> s.translate(None, 'M') 'EXAPLE'card = random.choice(cards) cardsLeft = cards.replace(card, '', 1)
Cara menghapus satu karakter dari string: Berikut adalah contoh di mana ada tumpukan kartu yang direpresentasikan sebagai karakter dalam string . Salah satunya diambil (impor modul acak untuk acak. function choice (), yang mengambil karakter acak dalam string) . String baru, cardsLeft, dibuat untuk menampung sisa kartu yang diberikan oleh fungsi string replace () di mana parameter terakhir menunjukkan bahwa hanya satu "kartu" harus diganti dengan string kosong ...
UserString.MutableString
Cara bisa berubah:
import UserString s = UserString.MutableString("EXAMPLE") >>> type(s) <type 'str'> # Delete 'M' del s[3] # Turn it for immutable: s = str(s)Inilah yang saya lakukan untuk memotong "M":
s = 'EXAMPLE' s1 = s[:s.index('M')] + s[s.index('M')+1:]Jika Anda ingin menghapus/mengabaikan karakter dalam sebuah string, dan, misalnya, Anda memiliki string ini,
"[11: L: 0]"
dari respons API web atau sesuatu seperti itu, seperti file CSV, katakanlah Anda menggunakan permintaan
import requests udid = 123456 url = '//webservices.yourserver.com/action/id-' + udid s = requests.Session() s.verify = False resp = s.get(url, stream=True) content = resp.contentlingkaran dan singkirkan karakter yang tidak diinginkan:
for line in resp.iter_lines(): line = line.replace("[", "") line = line.replace("]", "") line = line.replace('"', "")Pemisahan opsional, dan Anda akan dapat membaca nilai secara individual:
listofvalues = line.split(':')Sekarang mengakses setiap nilai lebih mudah:
print listofvalues[0] print listofvalues[1] print listofvalues[2]Ini akan dicetak
11
L.
0
def kill_char(string, n): # n = position of which character you want to remove begin = string[:n] # from beginning to n (n not included) end = string[n+1:] # n+1 through end of string return begin + end print kill_char("EXAMPLE", 3) # "M" removed
Saya telah melihat ini di suatu tempat sini .
Untuk menghapus char atau sub-string sekali (hanya kejadian pertama):
main_string = main_string.replace(sub_str, replace_with, 1)CATATAN: Di sini 1 dapat diganti dengan int apa pun untuk jumlah kemunculan yang ingin Anda ganti.
from random import randint def shuffle_Word(word): newWord="" for i in range(0,len(Word)): pos=randint(0,len(Word)-1) newWord += Word[pos] Word = Word[:pos]+Word[pos+1:] return newWord Word = "Sarajevo" print(shuffle_Word(word))
Anda cukup menggunakan pemahaman daftar.
Asumsikan Anda memiliki string: my name is dan Anda ingin menghapus karakter m. gunakan kode berikut:
"".join([x for x in "my name is" if x is not 'm'])