Daftar pemahaman digunakan untuk melakukan beberapa operasi untuk setiap elemen, atau memilih subset dari elemen yang memenuhi syarat
Metode membagi string menjadi daftar substring menggunakan pembatas
Metode ini mengambil 2 parameter berikut
NameDescriptionseparatorMembagi string menjadi substring pada setiap kemunculan separatormaxsplitPaling banyakmaxsplit
pemisahan dilakukan [opsional]Kami melewati 1
untuk maxsplit
argumen untuk hanya membagi string sekali dan mendapatkan item pertama
Jika Anda perlu membagi string pada setiap kemunculan pembatas, hapus argumen kedua dalam panggilan ke str.split[]
Contoh kedua membagi setiap elemen dalam daftar menjadi daftar bersarang
Anda juga dapat meratakan daftar setelah membagi setiap string
Variabel result_3
_ adalah daftar dua dimensi, jadi kami harus menggunakan pemahaman daftar lain untuk meratakannya
Anda dapat mencapai hasil yang sama dengan menggunakan for
loop
Kami menggunakan loop bersarang for
untuk meratakan daftar daftar
Loop for
luar digunakan untuk mengulangi daftar dua dimensi
Untuk mendapatkan akses ke item dalam daftar bersarang, kita memerlukan loop for
bersarang
Pada setiap iterasi, kami menambahkan setiap item daftar ke dalam daftar kosong
Jika Anda perlu membagi item daftar, akses daftar pada indeks tertentu sebelum memanggil metode split[]
Indeks berbasis nol di Python, jadi item pertama dalam daftar memiliki indeks maxsplit
1, yang kedua indeks 1
, dll
Anda juga dapat menggunakan pemahaman daftar untuk memisahkan setiap string dalam daftar dengan spasi
Pisahkan setiap String dalam Daftar dengan Spasi dengan Python
Untuk membagi setiap string dalam daftar dengan spasi
- Gunakan pemahaman daftar untuk mengulangi daftar
- Gunakan metode
str.split[]
_ untuk membagi setiap string dengan spasi - Ratakan daftar secara opsional
Pada setiap iterasi, kami menggunakan metode str.split[]
untuk memisahkan string saat ini dengan spasi
Ketika tidak ada pemisah yang diteruskan ke metode str.split[]
, itu membagi string input pada satu atau lebih karakter spasi
Kami menggunakan for
kedua untuk meratakan daftar daftar
Kita bisa mendapatkan hasil yang sama dengan loop bersarang for
Contoh kode mencapai hasil yang sama menggunakan loop for
bersarang
Loop for
pertama mengulang daftar dan yang kedua mengulang hasil pemanggilan str.split[]
pada setiap item daftar
Pada artikel ini, kita akan membahas berbagai cara untuk membagi daftar menjadi beberapa daftar dengan ukuran tertentu. Jika panjang daftar tidak sepenuhnya dapat dibagi dengan ukuran potongan, maka subdaftar terakhir akan memiliki lebih sedikit elemen
Daftar isi
pengantar
Misalkan kita memiliki daftar angka,
listOfNumbers = [11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22]
Sekarang kami ingin memecah daftar ini menjadi beberapa daftar ukuran potongan 4. Daftar ini akan menjadi,
[11, 12, 13, 14] [16, 17, 18, 19] [20, 21, 22]_
Karena daftar hanya memiliki 11 elemen, yang tidak habis dibagi 4, maka sublist terakhir hanya memiliki 3 elemen. Semua sublist lainnya masing-masing memiliki 4 elemen
Daftar Python tidak homogen dan digunakan untuk menyimpan banyak nilai dari tipe data berbeda yang dapat berupa numerik, Boolean, karakter, dll dengan nama yang sama
Berikut adalah contoh cara memisahkan daftar menjadi beberapa sub-daftar
def listSplit[srcList, subLists=1]:
length = len[srcList]
return [ srcList[i*length // subLists: [i+1]*length // subLists]
for i in range[subLists] ]
# Create a list
A = [0,1,2,3,4,5,6,7,8,9]
print[listSplit[A, subLists=1]]
print[listSplit[A, subLists=3]]
print[listSplit[A, subLists=8]]
Penjelasan
- listSplit menerima dua parameter, yaitu. e. daftar asli dan tidak ada subdaftar yang ingin Anda buat
- Dapatkan panjang daftar yang ingin Anda bagi
- Misalnya, jika panjang daftar adalah 6 dan ukuran sublist adalah 3, maka sublist pertama akan berada di kisaran 0 hingga 2, dan sublist kedua akan berada di kisaran 3 hingga 5, dan seterusnya…
Dikategorikan dalam
Pemrograman
Ditandai dalam
python-celana pendek Daftar dapat dibagi berdasarkan ukuran potongan yang ditentukan. Memisahkan daftar menjadi n bagian mengembalikan daftar n daftar yang berisi jumlah elemen daftar yang samaJika jumlah daftar, n, tidak dibagi rata dengan panjang daftar yang dipisah, maka beberapa daftar akan memiliki satu elemen lebih banyak daripada yang lain
Pemisahan daftar python
4 cara mudah untuk membagi daftar dengan Python
- Menggunakan len[]. Metode len[] mengembalikan panjang daftar dan kemudian menggunakan pembagian lantai
- Menggunakan pemahaman daftar. Pisahkan daftar menjadi potongan-potongan, dan berikan N ke pemahaman daftar
- Menggunakan untuk loop. Gunakan perulangan for untuk membagi daftar menjadi potongan-potongan yang berbeda
- Menggunakan numpy array_split[]. Ini memungkinkan Anda untuk membagi array menjadi sejumlah array
Metode 1. Menggunakan metode len[]
Untuk membagi daftar dengan Python, gunakan metode len[] dengan iterable sebagai daftar untuk menemukan panjangnya dan kemudian membagi panjangnya dengan 2 menggunakan operator // untuk menemukan indeks_tengah dari daftar
list = [11, 18, 19, 21] length = len[list] middle_index = length // 2 first_half = list[:middle_index] second_half = list[middle_index:] print[first_half] print[second_half]
Keluaran
[11, 18] [19, 21]_
Seperti yang Anda lihat dari output, kami membagi daftar menjadi dua bagian. Kami menggunakan operator titik dua [. ] untuk mengakses bagian pertama dan kedua dari daftar pisah
Cara membagi daftar menjadi n bagian dengan Python
Untuk membagi daftar menjadi n bagian dengan Python, gunakan numpy. fungsi array_split[]
np. split[] fungsi membagi array menjadi beberapa sub-array
Metode numpy array_split[] mengembalikan daftar n array Numpy, masing-masing berisi kira-kira jumlah elemen yang sama dari daftar
import numpy as np listA = [11, 18, 19, 21, 29, 46] splits = np.array_split[listA, 3] for array in splits: print[list[array]]
Keluaran
[11, 18] [19, 21] [29, 46]_
Dalam contoh ini, kami membagi daftar menjadi 3 bagian
Membagi Daftar Menjadi Potongan N Elemen dengan Python
Daftar dapat dibagi berdasarkan ukuran potongan yang ditentukan. Artinya kita bisa menentukan ukuran chunk
Jika subset daftar tidak sesuai dengan ukuran potongan yang ditentukan, pengisi harus dimasukkan sebagai pengganti pemegang elemen kosong
Oleh karena itu, kami akan menggunakan Tidak Ada sebagai filter untuk mengisi pemegang elemen kosong tersebut
def list_split[listA, n]: for x in range[0, len[listA], n]: every_chunk = listA[x: n+x] if len[every_chunk] < n: every_chunk = every_chunk + \ [None for y in range[n-len[every_chunk]]] yield every_chunk print[list[list_split[[11, 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 112, 113], 7]]]
Keluaran
[[11, 21, 31, 41, 51, 61, 71], [81, 91, 101, 111, 112, 113, None]]_
Daftar telah dibagi menjadi potongan yang sama dari 7 elemen masing-masing
Fungsi list_split[] di atas mengambil argumen. listA untuk daftar dan chunk_size untuk angka yang akan dipisahkan. Kemudian, fungsi beralih melalui daftar dengan peningkatan ukuran potongan n
Setiap potongan diharapkan memiliki ukuran yang diberikan sebagai argumen. Jika tidak ada cukup elemen untuk membagi ukuran yang sama, sisa elemen yang tidak terpakai diisi dengan Tidak ada
Metode 2. Menggunakan pemahaman daftar
Menggunakan pemahaman daftar, kita dapat membagi daftar asli dan membuat potongan. Untuk membagi daftar menjadi potongan-potongan, berikan N ke sintaks pemahaman daftar, dan itu akan membuat daftar baru dengan N potongan elemen
main_list = [11, 21, 46, 19] split_size = 3 splitted_list = [main_list[i:i+split_size] for i in range[0, len[main_list], split_size]] print[splitted_list]_
Keluaran
[[11, 21, 46], [19]]
Anda dapat melihat bahwa kami membagi daftar menjadi potongan-potongan 3 elemen. Anda dapat membagi daftar menjadi potongan 2 elemen atau empat elemen. Lewati split_size, yaitu N dalam kasus kami
Metode 3. Menggunakan untuk loop
Gunakan perulangan for untuk membagi daftar menjadi potongan-potongan yang berbeda. Tentukan ukuran potongan dari daftar, dan itu akan membuat daftar potongan dengan ukuran yang tepat
main_list = [11, 21, 46, 19] chunk_size = 2 splitted_list = list[] for i in range[0, len[main_list], chunk_size]: splitted_list.append[main_list[i:i+chunk_size]] print[splitted_list]
Keluaran
[[11, 21], [46, 19]]
Metode 4. Menggunakan numpy array_split[]
np. array_split[] adalah fungsi perpustakaan numpy yang membagi daftar menjadi beberapa bagian. Ini memungkinkan Anda untuk membagi array menjadi sejumlah array
[11, 18] [19, 21]_0
Keluaran
[[11, 21], [46, 19]]
FAQ
Bagaimana cara membagi daftar menjadi beberapa daftar dengan Python?
Gunakan pengirisan daftar untuk membagi daftar menjadi beberapa daftar
[11, 18] [19, 21]_2
Keluaran
[11, 18] [19, 21]_3
Bagaimana cara membagi daftar menjadi sejumlah subdaftar tertentu dengan Python?
Gunakan pengirisan daftar yang dikombinasikan dengan fungsi range[] untuk membagi daftar menjadi sejumlah subdaftar tertentu
[11, 18] [19, 21]_4
Keluaran
[11, 18] [19, 21]_5
Kesimpulan
Untuk membagi panjang daftar dengan Python, Anda dapat menggunakan fungsi len[] bawaan yang dikombinasikan dengan floor bagi panjangnya dengan 2 menggunakan operator // untuk menemukan indeks_tengah daftar
Terlepas dari pendekatan fungsi len[], Anda juga dapat menggunakan for loop, pemahaman daftar, atau fungsi numpy array_split[]