Pertanyaan Bagaimana cara memangkas spasi dari string Python?


Bagaimana cara menghapus spasi putih yang mengarah dan tertinggal dari string dengan Python?

Sebagai contoh:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"

922
2018-04-17 19:16


asal


Jawaban:


Hanya satu ruang, atau semua ruang semacam itu? Jika yang kedua, maka string sudah punya .strip() metode:

>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> '          Hello        '.strip()  # ALL spaces at ends removed
'Hello'

Jika Anda hanya perlu menghapus satu ruang, Anda dapat melakukannya dengan:

def strip_one_space(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

>>> strip_one_space("   Hello ")
'  Hello'

Juga, perhatikan itu str.strip() menghapus karakter spasi putih lainnya (misalnya tab dan baris baru). Untuk menghapus hanya spasi, Anda dapat menentukan karakter yang akan dihapus sebagai argumen strip, yaitu:

>>> "  Hello\n".strip(" ")
'Hello\n'

1402
2018-04-17 19:21



Seperti yang ditunjukkan dalam jawaban di atas

myString.strip()

akan menghapus semua karakter whitespace terkemuka dan tertinggal seperti \ n, \ r, \ t, \ f, spasi.

Untuk lebih fleksibel gunakan yang berikut ini

  • Hanya menghapus terkemuka karakter whitespace: myString.lstrip()
  • Hanya menghapus trailing karakter whitespace: myString.rstrip()
  • Menghapus spesifik karakter whitespace: myString.strip('\n') atau myString.lstrip('\n\r') atau myString.rstrip('\n\t') dan seterusnya.

Detail lebih lanjut tersedia di dokumen


222
2018-05-18 04:16



strip tidak terbatas pada karakter spasi putih:

# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')

101
2018-04-17 13:22



myString.strip()

44
2018-04-17 19:19



Anda ingin menghapus ():

myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]

for phrase in myphrases:
    print phrase.strip()

20
2018-04-17 19:21



Ada juga cara untuk melakukannya tanpa fungsi itu

string = "Hello Wor l d "
tmp_list = []
for char in string:
    if char != " ":
    tmp_list +=char
final_string = "".join(tmp_list)
print final_string

Tapi itu hanya untuk bersenang-senang :)


0
2018-01-17 05:36