Tampaknya dapat menemukan fungsi substring di python.
Katakanlah saya ingin mengeluarkan 100 karakter pertama dalam sebuah string, bagaimana saya bisa melakukan ini?
Saya ingin melakukannya dengan aman juga, artinya jika string adalah 50 karakter maka tidak boleh gagal.
Jawaban:
sumber
print 'foo'[:100]
(perhatikan bahwalen('foo')
3, jadi meskipunfoo[100]
tidak berfungsi, itu berhasil)Dari tutorial python :
Sehingga aman digunakan
x[:100]
.sumber
Mudah:
sumber
Untuk menjawab kekhawatiran Philipp (di komentar), slicing juga bisa digunakan untuk string unicode
Jika Anda ingin menjalankan kode di atas sebagai skrip, letakkan baris ini di bagian atas
Jika editor Anda tidak menyimpan di utf-8, gantikan pengkodean yang benar
sumber
ς
danσ
merupakan huruf yang sama :-)greek_alphabet
saat itu :)Pemotongan array dilakukan dengan
[first:last+1]
.Salah satu trik yang cenderung sering saya gunakan adalah menunjukkan informasi tambahan dengan elipsis. Jadi, jika bidang Anda seratus karakter, saya akan menggunakan:
Dan ya, saya tahu
()
tidak berguna dalam hal ini untuk%
operator pemformatan, itu hanya gaya saya.sumber
Sebagian besar contoh sebelumnya akan memunculkan pengecualian jika string Anda tidak cukup panjang.
Pendekatan lain adalah dengan menggunakan
'yourstring'.ljust(100)[:100].strip()
.Ini akan memberi Anda 100 karakter pertama. Anda mungkin mendapatkan string yang lebih pendek jika karakter terakhir string Anda adalah spasi.
sumber
Pemformatan string menggunakan
%
adalah cara terbaik untuk menangani ini. Berikut ini beberapa contohnya.Kode pemformatan
'%s'
diubah'12345'
menjadi string, tetapi itu sudah menjadi string.'%.3s'
menentukan untuk menggunakan hanya tiga karakter pertama.'%.7s'
mengatakan untuk menggunakan tujuh karakter pertama, tetapi hanya ada lima. Tidak masalah.'%7s'
menggunakan hingga tujuh karakter, mengisi karakter yang hilang dengan spasi di sebelah kiri.'%-7s'
adalah hal yang sama, kecuali mengisi karakter yang hilang di sebelah kanan.'%5.3'
mengatakan gunakan tiga karakter pertama, tetapi isi dengan spasi di sebelah kiri hingga total lima karakter.Hal yang sama kecuali isian di sebelah kanan.
Dapat menangani banyak argumen juga!
Jika Anda membutuhkan lebih banyak fleksibilitas,
str.format()
tersedia juga. Berikut dokumentasi untuk keduanya.sumber
Jadi Jika Anda ingin mengambil hanya 100 karakter pertama, gunakan
your_string[0:100]
atauyour_string[:100]
Jika Anda ingin mengambil hanya karakter pada posisi genap, gunakanyour_string[::2]
"nilai default" untuk start adalah 0, untuk stop - len string, dan untuk langkah - 1. Jadi ketika Anda tidak memberikan salah satu dari its dan put ':', itu akan menggunakan nilai defaultnya.sumber