Apabila membelah rentetan yang dipisahkan koma ke dalam senarai dalam Python, jika tiada ruang di antaranya, hanya split() akan berfungsi. Jika terdapat ruang, adalah berguna untuk menggabungkannya dengan strip() untuk mengalih keluar ruang tambahan. Selain itu, menggunakan tatatanda pemahaman senarai ialah cara yang bijak untuk menulis.
Dalam bahagian ini, kami mula-mula menerangkan perkara berikut.
- Pisahkan rentetan dengan pembatas yang ditentukan dan kembalikannya sebagai senarai
split()
- Alih keluar aksara tambahan dari permulaan dan penghujung rentetan.
strip()
- Senaraikan tatatanda pemahaman untuk menggunakan fungsi dan kaedah untuk menyenaraikan elemen.
Ia juga menunjukkan cara membuat senarai rentetan yang dipisahkan oleh ruang dan koma dengan mengalih keluar ruang, seperti yang ditunjukkan di bawah.one, two, three'
Di samping itu, kita akan membincangkan perkara berikut
- Bagaimana untuk mendapatkannya sebagai senarai nombor
- Cara menggunakan join() untuk menyertai senarai dan menjadikannya rentetan semula
- split():Pisahkan rentetan dengan pembatas yang ditentukan dan kembalikannya sebagai senarai
- strip():Alih keluar aksara tambahan dari permulaan dan penghujung rentetan.
- Senaraikan tatatanda pemahaman: gunakan fungsi dan kaedah untuk menyenaraikan elemen
- Dapatkan sebagai senarai nombor
- join():Gabungkan senarai dan dapatkannya sebagai rentetan
split():Pisahkan rentetan dengan pembatas yang ditentukan dan kembalikannya sebagai senarai
Menggunakan kaedah split() untuk rentetan, anda boleh memisahkan rentetan dengan pembatas yang ditentukan dan mendapatkannya sebagai senarai (tatasusunan). Pembatas yang ditentukan boleh ditentukan oleh hujah berikut.sep
Jika hujah sep ditinggalkan dan tiada pembatas ditentukan, ia memisahkan rentetan mengikut ruang dan mengembalikan senarai. Ruang dan tab yang berturut-turut juga akan membahagikan senarai, jadi jika anda ingin membuat senarai rentetan yang dibatasi tab, anda boleh menggunakan split() tanpa hujah.
s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one\ttwo\tthree' l = s.split() print(l) # ['one', 'two', 'three']
Jika pembatas ditentukan dalam hujah sep, ia membahagikan senarai dengan rentetan itu dan mengembalikan senarai.
s = 'one::two::three' l = s.split('::') print(l) # ['one', 'two', 'three']
Dalam kes rentetan yang dipisahkan koma, jika tiada ruang putih tambahan, tiada masalah, tetapi jika anda menjalankan split() dengan koma sebagai pembatas untuk rentetan yang dipisahkan dengan koma + ruang putih, anda akan tamat dengan senarai rentetan dengan ruang putih yang ditinggalkan pada permulaan.
s = 'one,two,three' l = s.split(',') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Anda boleh menggunakan koma + ruang sebagai pembatas seperti berikut, tetapi ia tidak akan berfungsi jika bilangan ruang dalam rentetan asal berbeza., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Jalur kaedah rentetan(), yang akan diterangkan seterusnya, boleh digunakan untuk menangani dua ruang.
strip():Alih keluar aksara tambahan dari permulaan dan penghujung rentetan.
strip() ialah kaedah untuk mengalih keluar aksara tambahan dari permulaan dan penghujung rentetan.
Jika hujah ditinggalkan, rentetan baharu dikembalikan dengan aksara ruang kosong dialih keluar. Rentetan asal itu sendiri tidak diubah.
s = ' one ' print(s.strip()) # one print(s) # one
Jika rentetan dinyatakan sebagai hujah, aksara yang terkandung dalam rentetan akan dialih keluar.
s = '-+-one-+-' print(s.strip('-+')) # one
Dalam kes ini, ruang tidak dialih keluar. Oleh itu, jika anda ingin mengalih keluar ruang putih juga, hantar rentetan termasuk ruang sebagai hujah, seperti yang ditunjukkan di bawah.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
strip() mengendalikan kedua-dua hujung, tetapi fungsi berikut juga tersedia.
lstrip()
:Proses hanya permulaanrstrip()
:Proses hujung baris sahaja.
Senaraikan tatatanda pemahaman: gunakan fungsi dan kaedah untuk menyenaraikan elemen
Jika anda ingin menggunakan fungsi atau kaedah pada elemen senarai, adalah bijak untuk menggunakan notasi pemahaman senarai dan bukannya gelung for jika anda ingin mendapatkan senarai itu pada akhirnya.
- Artikel berkaitan:Menggunakan notasi pemahaman senarai Python
Di sini, kami menggunakan strip() pada senarai yang diperoleh dengan membelah rentetan dengan split(). Ruang putih tambahan dalam rentetan dipisahkan koma yang mengandungi ruang putih boleh dialih keluar untuk membuat senarai.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Apabila ini digunakan pada rentetan kosong, senarai dengan rentetan kosong tunggal sebagai elemen boleh diperolehi.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Jika anda ingin mendapatkan senarai kosong untuk rentetan kosong, anda boleh menyediakan cawangan bersyarat dalam notasi pemahaman senarai.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
Selain itu, jika elemen yang dipisahkan koma tiada, seperti yang diterangkan di atas, kaedah pertama akan menyenaraikannya sebagai elemen rentetan kosong.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Jika anda ingin mengabaikan bahagian yang hilang, anda boleh menyediakan cawangan bersyarat dalam notasi pemahaman senarai.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Dapatkan sebagai senarai nombor
Jika anda ingin mendapatkan rentetan nombor yang dipisahkan koma sebagai senarai nombor dan bukannya rentetan, gunakan int() atau float() untuk menukar rentetan kepada nombor dalam notasi pemahaman senarai.
s = '1, 2, 3, 4' l = [x.strip() for x in s.split(',')] print(l) print(type(l[0])) # ['1', '2', '3', '4'] # <class 'str'> s = '1, 2, 3, 4' l = [int(x.strip()) for x in s.split(',')] print(l) print(type(l[0])) # [1, 2, 3, 4] # <class 'int'>
join():Gabungkan senarai dan dapatkannya sebagai rentetan
Dalam corak yang bertentangan, jika anda ingin menyertai senarai dan mendapatkan rentetan yang dipisahkan oleh pembatas tertentu, gunakan kaedah join().
Adalah mudah untuk membuat kesilapan, tetapi ambil perhatian bahawa join() ialah kaedah rentetan, bukan kaedah senarai. Senarai dinyatakan sebagai hujah.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three'] print(','.join(l)) # one,two,three print('::'.join(l)) # one::two::three
Anda boleh menulisnya dalam satu baris seperti berikut.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Jika anda hanya mahu menukar pembatas tetap, lebih mudah untuk menggantikannya dengan kaedah replace().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three