Ada sedikit jaminan dalam hidup. kematian, pajak, dan pemrogram perlu berurusan dengan string. String bisa datang dalam berbagai bentuk. Itu bisa berupa teks tidak terstruktur, nama pengguna, deskripsi produk, nama kolom basis data, atau apa pun yang kami jelaskan menggunakan bahasa
Dengan data string yang hampir ada di mana-mana, penting untuk menguasai alat perdagangan terkait string. Untungnya, Python membuat manipulasi string menjadi sangat sederhana, terutama jika dibandingkan dengan bahasa lain dan bahkan versi Python yang lebih lama
Pada artikel ini, Anda akan mempelajari beberapa operasi string yang paling mendasar. membelah, menggabungkan, dan menggabungkan. Anda tidak hanya akan mempelajari cara menggunakan alat ini, tetapi Anda akan mendapatkan pemahaman yang lebih dalam tentang cara kerjanya di balik terpal
Ikuti Kuis. Uji pengetahuan Anda dengan kuis interaktif “Memisahkan, Menyatukan, dan Menggabungkan String dengan Python”. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
Bonus Gratis. Klik di sini untuk mendapatkan Cheat Sheet Python dan mempelajari dasar-dasar Python 3, seperti bekerja dengan tipe data, kamus, daftar, dan fungsi Python
Pemisahan String
Dalam Python, string direpresentasikan sebagai objek, yang tidak dapat diubah. ini berarti bahwa objek yang direpresentasikan dalam memori tidak dapat diubah secara langsung. Kedua fakta ini dapat membantu Anda mempelajari (dan kemudian mengingat) cara menggunakan # Do this instead: 'a,b,c'.split(',') 9
Pernahkah Anda menebak bagaimana kedua fitur string tersebut berhubungan dengan fungsi pemisahan di Python? . Dalam beberapa bahasa lain (seperti Perl), string asli berfungsi sebagai input ke fungsi # Do this instead: 'a,b,c'.split(',') 9 mandiri daripada metode yang dipanggil pada string itu sendiri
Catatan. Cara Memanggil Metode String
Metode string seperti # Do this instead: 'a,b,c'.split(',') _9 terutama ditampilkan di sini sebagai metode contoh yang dipanggil pada string. Mereka juga dapat disebut sebagai metode statis, tetapi ini tidak ideal karena lebih “bertele-tele”. Demi kelengkapan, inilah contohnya
# Avoid this: str.split('a,b,c', ',') _
Ini besar dan berat bila Anda membandingkannya dengan penggunaan pilihan
# Do this instead: 'a,b,c'.split(',')
Untuk informasi lebih lanjut tentang metode instance, class, dan statis di Python, lihat tutorial mendalam kami
Bagaimana dengan kekekalan string?
Catatan. Operasi di Tempat
Operasi di tempat adalah operasi yang secara langsung mengubah objek tempat mereka dipanggil. Contoh umum adalah metode >>> 'this is my string'.split() ['this', 'is', 'my', 'string'] _3 yang digunakan pada daftar. ketika Anda memanggil >>> 'this is my string'.split() ['this', 'is', 'my', 'string'] _3 pada daftar, daftar itu langsung diubah dengan menambahkan input ke >>> 'this is my string'.split() ['this', 'is', 'my', 'string'] 3 ke daftar yang sama
Hilangkan iklanPemisahan Tanpa Parameter
Sebelum masuk lebih dalam, mari kita lihat contoh sederhana
>>> >>> 'this is my string'.split() ['this', 'is', 'my', 'string'] _
Ini sebenarnya adalah kasus khusus dari panggilan # Do this instead: 'a,b,c'.split(',') _9, yang saya pilih karena kesederhanaannya. Tanpa pemisah apa pun yang ditentukan, # Do this instead: 'a,b,c'.split(',') _9 akan menghitung spasi apa pun sebagai pemisah
Fitur lain dari panggilan kosong ke # Do this instead: 'a,b,c'.split(',') _9 adalah bahwa ia secara otomatis memotong spasi kosong di depan dan di belakang, serta spasi kosong berurutan. Bandingkan panggilan # Do this instead: 'a,b,c'.split(',') _9 pada string berikut tanpa parameter pemisah dan dengan memiliki >>> s = ' this is my string ' >>> s.split() ['this', 'is', 'my', 'string'] >>> s.split(' ') ['', 'this', '', '', 'is', '', 'my', 'string', ''] 0 sebagai parameter pemisah
>>> >>> s = ' this is my string ' >>> s.split() ['this', 'is', 'my', 'string'] >>> s.split(' ') ['', 'this', '', '', 'is', '', 'my', 'string', ''] _
Hal pertama yang perlu diperhatikan adalah bahwa ini menampilkan kekekalan string dalam Python. panggilan berikutnya ke # Do this instead: 'a,b,c'.split(',') _9 bekerja pada string asli, bukan pada daftar hasil panggilan pertama ke # Do this instead: 'a,b,c'.split(',') 9
Hal kedua—dan utama—yang harus Anda lihat adalah panggilan kosong # Do this instead: 'a,b,c'.split(',') 9 mengekstrak kata-kata dalam kalimat dan membuang spasi apa pun
Menentukan Pemisah
>>> s = ' this is my string ' >>> s.split() ['this', 'is', 'my', 'string'] >>> s.split(' ') ['', 'this', '', '', 'is', '', 'my', 'string', ''] _4, di sisi lain, jauh lebih literal. Saat ada pemisah awal atau akhir, Anda akan mendapatkan string kosong, yang dapat Anda lihat di elemen pertama dan terakhir dari daftar yang dihasilkan
Jika ada beberapa pemisah berurutan (seperti antara "ini" dan "adalah" dan antara "adalah" dan "milikku"), yang pertama akan digunakan sebagai pemisah, dan yang berikutnya akan masuk ke daftar hasil Anda
Catatan. Pemisah dalam Panggilan ke # Do this instead: 'a,b,c'.split(',') _9
Sementara contoh di atas menggunakan karakter spasi tunggal sebagai input pemisah ke # Do this instead: 'a,b,c'.split(',') 9, Anda tidak dibatasi dalam jenis karakter atau panjang string yang Anda gunakan sebagai pemisah. Satu-satunya persyaratan adalah pemisah Anda berupa string. Anda bisa menggunakan apa saja dari >>> s = ' this is my string ' >>> s.split() ['this', 'is', 'my', 'string'] >>> s.split(' ') ['', 'this', '', '', 'is', '', 'my', 'string', ''] _7 bahkan >>> s = ' this is my string ' >>> s.split() ['this', 'is', 'my', 'string'] >>> s.split(' ') ['', 'this', '', '', 'is', '', 'my', 'string', ''] 8
Membatasi Perpecahan Dengan Maxsplit
# Do this instead: 'a,b,c'.split(',') _9 memiliki parameter opsional lain yang disebut >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 0. Secara default, # Do this instead: 'a,b,c'.split(',') _9 akan membuat semua kemungkinan pemisahan saat dipanggil. Saat Anda memberi nilai pada >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] _0, bagaimanapun, hanya jumlah pembagian yang diberikan yang akan dibuat. Menggunakan string contoh kita sebelumnya, kita dapat melihat >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 0 beraksi
>>> >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] _
Seperti yang Anda lihat di atas, jika Anda menyetel >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] _0 ke >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 5, wilayah spasi putih pertama digunakan sebagai pemisah, dan sisanya diabaikan. Mari kita lakukan beberapa latihan untuk menguji semua yang telah kita pelajari sejauh ini
Latihan. "Cobalah sendiri. Maxsplit"Tampilkan/Sembunyikan
Apa yang terjadi jika Anda memberikan angka negatif sebagai parameter >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 0?
Solusi. "Cobalah sendiri. Maxsplit"Tampilkan/Sembunyikan
# Do this instead: 'a,b,c'.split(',') 9 akan membagi string Anda pada semua pemisah yang tersedia, yang juga merupakan perilaku default saat >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 0 tidak disetel
Latihan. "Pemeriksaan Pemahaman Bagian"Tampilkan/Sembunyikan
Anda baru-baru ini diberikan file nilai yang dipisahkan koma (CSV) yang diformat dengan sangat buruk. Tugas Anda adalah mengekstrak setiap baris ke dalam daftar, dengan setiap elemen dari daftar itu mewakili kolom dari file itu. Apa yang membuatnya diformat dengan buruk?
Asumsikan bahwa file Anda telah dimuat ke dalam memori sebagai string multibaris berikut
Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
Output Anda harus berupa daftar daftar
[ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ]
Setiap daftar dalam mewakili baris CSV yang kami minati, sedangkan daftar luar menyatukan semuanya
Solusi. "Pemeriksaan Pemahaman Bagian"Tampilkan/Sembunyikan
Inilah solusi saya. Ada beberapa cara untuk menyerang ini. Yang penting adalah Anda menggunakan # Do this instead: 'a,b,c'.split(',') _9 dengan semua parameter opsionalnya dan mendapatkan hasil yang diharapkan
input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string))
Kami memanggil # Do this instead: 'a,b,c'.split(',') _9 dua kali di sini. Penggunaan pertama mungkin terlihat mengintimidasi, tapi jangan khawatir. Kami akan melewatinya, dan Anda akan merasa nyaman dengan ekspresi seperti ini. Mari kita lihat lagi panggilan ________0______9 pertama. Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _2
Elemen pertama adalah Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _3, yang merupakan variabel yang menunjuk ke string input Anda. Kemudian kami melakukan panggilan # Do this instead: 'a,b,c'.split(',') _9. Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _5. Di sini, kita membagi karakter khusus yang disebut karakter baris baru
Apa yang Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _6 lakukan? . Dalam string multiline seperti Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _7 kami, ada Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL 6 tersembunyi di akhir setiap baris
Bagian terakhir mungkin baru. Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL _9. Pernyataan tersebut sejauh ini memberi kita daftar baru dalam memori, dan Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL 9 terlihat seperti notasi indeks daftar, dan ini adalah—semacam. Notasi indeks yang diperluas ini memberi kita potongan daftar. Dalam hal ini, kami mengambil elemen pada indeks >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 5 dan semuanya setelahnya, membuang elemen pada indeks [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 2
Secara keseluruhan, kami mengulang melalui daftar string, di mana setiap elemen mewakili setiap baris dalam string input multiline kecuali untuk baris pertama
Pada setiap string, kita memanggil # Do this instead: 'a,b,c'.split(',') _9 lagi menggunakan [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 4 sebagai karakter pemisah, tetapi kali ini kita menggunakan >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 0 untuk hanya memisahkan dua koma pertama, membiarkan alamat tetap utuh. Kami kemudian menambahkan hasil panggilan itu ke array [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 6 yang diberi nama tepat dan mengembalikannya ke pemanggil
Hilangkan iklanMenggabungkan dan Menggabungkan String
Operasi string dasar lainnya adalah kebalikan dari pemisahan string. rangkaian string. Jika Anda belum pernah melihat kata ini, jangan khawatir. Itu hanya cara yang bagus untuk mengatakan “merekatkan bersama. ”
Menggabungkan Dengan [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] _7 Operator
Ada beberapa cara untuk melakukan ini, tergantung pada apa yang ingin Anda capai. Metode paling sederhana dan paling umum adalah dengan menggunakan simbol plus ([ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 7) untuk menambahkan beberapa string secara bersamaan. Cukup tempatkan [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 7 di antara sebanyak mungkin string yang ingin Anda gabungkan
>>> >>> 'a' + 'b' + 'c' 'abc' _
Sesuai dengan tema matematika, Anda juga dapat mengalikan string untuk mengulanginya
>>>_______ 60 ________>>> 'do' * 2 'dodo'
Ingat, string tidak dapat diubah. Jika Anda menggabungkan atau mengulangi string yang disimpan dalam variabel, Anda harus menetapkan string baru ke variabel lain untuk mempertahankannya.
>>> # Do this instead: 'a,b,c'.split(',') 0
Jika kita tidak memiliki string yang tidak dapat diubah, input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 0 akan menghasilkan input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 1
Catatan lain adalah bahwa Python tidak melakukan konversi string implisit. Jika Anda mencoba menggabungkan string dengan tipe non-string, Python akan memunculkan input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 2
>>> # Do this instead: 'a,b,c'.split(',') 1
Ini karena Anda hanya dapat menggabungkan string dengan string lain, yang mungkin merupakan perilaku baru bagi Anda jika Anda berasal dari bahasa seperti JavaScript, yang mencoba melakukan konversi tipe implisit
Pergi Dari Daftar ke String dengan Python Dengan input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3
Ada cara lain yang lebih kuat untuk menyatukan string. Anda dapat beralih dari daftar ke string dengan Python dengan metode input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 4
Kasus penggunaan umum di sini adalah ketika Anda memiliki iterable—seperti daftar—yang terdiri dari string, dan Anda ingin menggabungkan string tersebut menjadi satu string. Seperti # Do this instead: 'a,b,c'.split(',') _9, input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3 adalah metode instance string. Jika semua string Anda dalam iterable, yang mana yang Anda panggil input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3?
Ini sedikit pertanyaan jebakan. Ingatlah bahwa ketika Anda menggunakan # Do this instead: 'a,b,c'.split(',') 9, Anda memanggilnya pada string atau karakter yang ingin Anda pisahkan. Operasi kebalikannya adalah input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3, jadi Anda memanggilnya pada string atau karakter yang ingin Anda gunakan untuk menggabungkan iterable string Anda bersama-sama
>>> # Do this instead: 'a,b,c'.split(',') 2
Di sini, kami menggabungkan setiap elemen dari daftar >>> 'a' + 'b' + 'c' 'abc' _0 dengan koma ([ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 4) dan memanggil input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3 daripada daftar >>> 'a' + 'b' + 'c' 'abc' 0
Latihan. "Peningkatan Keterbacaan dengan Gabung"Tampilkan/Sembunyikan
Bagaimana Anda bisa membuat teks keluaran lebih mudah dibaca?
Solusi. "Peningkatan Keterbacaan dengan Gabung"Tampilkan/Sembunyikan
Satu hal yang dapat Anda lakukan adalah menambahkan spasi
>>> # Do this instead: 'a,b,c'.split(',') 3
Dengan melakukan tidak lebih dari menambahkan spasi ke string gabungan kami, kami telah sangat meningkatkan keterbacaan output kami. Ini adalah sesuatu yang harus selalu Anda ingat saat menggabungkan string agar mudah dibaca manusia
input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3 pintar karena memasukkan "joiner" Anda di antara string di iterable yang ingin Anda gabung, daripada hanya menambahkan joiner Anda di akhir setiap string di iterable. Ini berarti bahwa jika Anda melewati iterable ukuran >>> s = "this is my string" >>> s.split(maxsplit=1) ['this', 'is my string'] 5, Anda tidak akan melihat joiner Anda
>>> # Do this instead: 'a,b,c'.split(',') 4
Latihan. "Pemeriksaan Pemahaman Bagian"Tampilkan/Sembunyikan
Dengan menggunakan tutorial pengikisan web kami, Anda telah membuat pengikis cuaca yang hebat. Namun, itu memuat informasi string dalam daftar daftar, masing-masing berisi baris informasi unik yang ingin Anda tulis ke file CSV
# Do this instead: 'a,b,c'.split(',') 5
Output Anda harus berupa string tunggal yang terlihat seperti ini
# Do this instead: 'a,b,c'.split(',') _6
Solusi. "Pemeriksaan Pemahaman Bagian"Tampilkan/Sembunyikan
Untuk solusi ini, saya menggunakan pemahaman daftar, yang merupakan fitur kuat dari Python yang memungkinkan Anda membuat daftar dengan cepat. Jika Anda ingin mempelajari lebih lanjut tentang mereka, lihat artikel hebat ini yang mencakup semua pemahaman yang tersedia di Python
Di bawah ini adalah solusi saya, dimulai dengan daftar daftar dan diakhiri dengan satu string
# Do this instead: 'a,b,c'.split(',') _7
Di sini kita menggunakan input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3 tidak hanya sekali, tapi dua kali. Pertama, kami menggunakannya dalam pemahaman daftar, yang berfungsi menggabungkan semua string di setiap daftar dalam menjadi satu string. Selanjutnya, kita gabungkan setiap string tersebut dengan karakter baris baru Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL 6 yang kita lihat tadi. Akhirnya, kami cukup mencetak hasilnya sehingga kami dapat memverifikasi bahwa itu seperti yang kami harapkan
Hilangkan iklanMengikat Semuanya Bersama
Meskipun ini menyimpulkan ikhtisar tentang operasi string paling dasar di Python (pemisahan, penggabungan, dan penggabungan), masih ada seluruh dunia metode string yang dapat membuat pengalaman Anda memanipulasi string jauh lebih mudah
Setelah Anda menguasai operasi string dasar ini, Anda mungkin ingin mempelajari lebih lanjut. Untungnya, kami memiliki sejumlah tutorial bagus untuk membantu Anda menyelesaikan penguasaan fitur Python yang memungkinkan manipulasi string cerdas
- f-String Python 3. Sintaks Pemformatan String yang Disempurnakan
- Praktik Terbaik Pemformatan String Python
- Data String dan Karakter dengan Python
Ikuti Kuis. Uji pengetahuan Anda dengan kuis interaktif “Memisahkan, Menyatukan, dan Menggabungkan String dengan Python”. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
Tandai sebagai Selesai
Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Memisahkan, Menggabungkan, dan Menggabungkan String dengan Python
🐍 Trik Python 💌
Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python
Tentang Kyle Stratis
Kyle adalah pengembang otodidak yang bekerja sebagai insinyur data senior di Vizit Labs. Di masa lalu, dia mendirikan DanqEx (sebelumnya Nasdanq. bursa meme asli) dan Encryptid Gaming
» Lebih lanjut tentang KyleSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah
Adriana
Brad
Dan
Joanna
Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista
Tingkatkan Keterampilan Python Anda »
Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista
Tingkatkan Keterampilan Python Anda »
Bagaimana menurutmu?
Nilai artikel ini
Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari?
Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami