Alternatifnya adalah dengan menggunakan partition(). Penggunaannya mirip dengan contoh terakhir, hanya saja ia mengembalikan tiga komponen, bukan dua. Keuntungan utamanya adalah bahwa metode ini tidak gagal jika string tidak berisi pemisah.
Pisahkan string pada spasi, dapatkan daftar, tunjukkan tipenya, cetak:
el@apollo:~/foo$ python>>> mystring ="What does the fox say?">>> mylist = mystring.split(" ")>>>print type(mylist)<type 'list'>>>>print mylist['What','does','the','fox','say?']
Jika Anda memiliki dua pembatas di samping satu sama lain, diasumsikan string kosong:
el@apollo:~/foo$ python>>> mystring ="its so fluffy im gonna DIE!!!">>>print mystring.split(" ")['its','','so','','','fluffy','','','im','gonna','','','','DIE!!!']
Pisahkan string pada garis bawah dan ambil item ke-5 dalam daftar:
Ketika Anda tidak memberikan parameter ke metode split Python, dokumentasi menyatakan : "run of consecutive whitespace dianggap sebagai pemisah tunggal, dan hasilnya tidak akan berisi string kosong di awal atau akhir jika string memiliki spasi di depan atau di belakang".
Biasa ekspresi "[am] +" berarti huruf kecil amelalui myang terjadi satu kali atau lebih dicocokkan sebagai pembatas. readalah perpustakaan yang akan diimpor.
Atau jika Anda ingin mengunyah makanan satu per satu:
el@apollo:~/foo$ python>>> mystring ="theres coffee in that nebula">>> mytuple = mystring.partition(" ")>>>print type(mytuple)<type 'tuple'>>>>print mytuple('theres',' ','coffee in that nebula')>>>print mytuple[0]
theres>>>print mytuple[2]
coffee in that nebula
Jika itu selalu akan menjadi perpecahan LHS / RHS yang rata, Anda juga dapat menggunakan partitionmetode yang dibangun ke dalam string. Ini mengembalikan 3-tupel seolah- (LHS, separator, RHS)olah pemisah ditemukan, dan (original_string, '', '')jika pemisah tidak ada:
partition
metode string, lalu perbarui pertanyaan Anda.Jawaban:
"2.7.0_bf4fda703454".split("_")
memberikan daftar string:Ini membagi string di setiap garis bawah. Jika Anda ingin berhenti setelah pemisahan pertama, gunakan
"2.7.0_bf4fda703454".split("_", 1)
.Jika Anda mengetahui fakta bahwa string tersebut berisi garis bawah, Anda bahkan dapat mengekstrak LHS dan RHS menjadi variabel terpisah:
Alternatifnya adalah dengan menggunakan
partition()
. Penggunaannya mirip dengan contoh terakhir, hanya saja ia mengembalikan tiga komponen, bukan dua. Keuntungan utamanya adalah bahwa metode ini tidak gagal jika string tidak berisi pemisah.sumber
Panduan penguraian string Python
Pisahkan string pada spasi, dapatkan daftar, tunjukkan tipenya, cetak:
Jika Anda memiliki dua pembatas di samping satu sama lain, diasumsikan string kosong:
Pisahkan string pada garis bawah dan ambil item ke-5 dalam daftar:
Ciutkan beberapa spasi menjadi satu
Ketika Anda tidak memberikan parameter ke metode split Python, dokumentasi menyatakan : "run of consecutive whitespace dianggap sebagai pemisah tunggal, dan hasilnya tidak akan berisi string kosong di awal atau akhir jika string memiliki spasi di depan atau di belakang".
Pegang topi Anda, uraikan ekspresi reguler:
Biasa ekspresi "[am] +" berarti huruf kecil
a
melaluim
yang terjadi satu kali atau lebih dicocokkan sebagai pembatas.re
adalah perpustakaan yang akan diimpor.Atau jika Anda ingin mengunyah makanan satu per satu:
sumber
Jika itu selalu akan menjadi perpecahan LHS / RHS yang rata, Anda juga dapat menggunakan
partition
metode yang dibangun ke dalam string. Ini mengembalikan 3-tupel seolah-(LHS, separator, RHS)
olah pemisah ditemukan, dan(original_string, '', '')
jika pemisah tidak ada:sumber