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
Salah satu struktur data Python yang dapat berisi nilai atau elemen campuran di dalamnya disebut daftar. Artikel ini akan memperkenalkan berbagai cara untuk membagi daftar menjadi beberapa bagian. Anda dapat menggunakan contoh kode apa pun yang sesuai dengan spesifikasi Anda
Pisahkan Daftar dengan Python menjadi Potongan Menggunakan Metode Pemahaman Daftar
Kita dapat menggunakan pemahaman daftar untuk membagi daftar Python menjadi beberapa bagian. Ini adalah cara yang efisien untuk mengenkapsulasi operasi agar kode lebih mudah dipahami
Kode contoh lengkap diberikan di bawah ini
test_list = ['1','2','3','4','5','6','7','8','9','10'] n=3 output=[test_list[i:i + n] for i in range(0, len(test_list), n)] print(output)
Keluaran
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 2 mengembalikan rentang angka mulai dari 0 dan berakhir pada [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 3 dengan langkah [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 4. Misalnya, [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] _5 akan mengembalikan [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 6
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 7 mendapatkan potongan daftar yang dimulai pada indeks [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 8 dan berakhir secara eksklusif pada [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 9. Potongan terakhir dari daftar pisah adalah from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) _0, tetapi indeks yang dihitung from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 1 tidak akan menimbulkan kesalahan tetapi sama dengan from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 0
Metode ini menyediakan generator yang harus diulang menggunakan from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 3 loop. Generator adalah cara yang efisien untuk mendeskripsikan iterator
from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output)
Keluaran
('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x')
from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 4 menghasilkan satu iterator dan iterasi [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 4 kali dalam daftar. Round-robin dari setiap iterator kemudian dilakukan secara efektif oleh from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 6;
Pisahkan Daftar dengan Python menjadi Potongan Menggunakan Fungsi ________12______7
Anda dapat menggunakan fungsi from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) _7 dasar untuk membagi daftar menjadi ukuran tertentu atau potongan yang lebih kecil. Fungsi ini bekerja pada daftar asli dan variabel berukuran N, beralih ke semua item daftar dan membaginya menjadi potongan berukuran N
Kode contoh lengkap diberikan di bawah ini
test_list = ['1','2','3','4','5','6','7','8','9','10'] x = 3 final_list= lambda test_list, x: [test_list[i:i+x] for i in range(0, len(test_list), x)] output=final_list(test_list, x) print('The Final List is:', output)
Keluaran
The Final List is: [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
Pisahkan Daftar dengan Python menjadi Potongan Menggunakan Metode from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) 7 & ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') 0
Fungsi from itertools import zip_longest test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(n, iterable, padvalue='x'): return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue) for output in group_elements(3,test_list): print(output) _7 dapat digunakan dengan fungsi ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') 0 dan menghasilkan generator yang mengulang daftar. Fungsi ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') _0 membuat iterator yang mengekstrak item yang dipilih dari iterable. Jika awal bukan nol, elemen iterable akan dilewati sebelum awal tercapai. Elemen kemudian dikembalikan secara berurutan kecuali satu langkah ditetapkan lebih tinggi dari satu yang mengakibatkan item-item dilewati
Kode contoh lengkap diberikan di bawah ini
from itertools import islice test_list = ['1','2','3','4','5','6','7','8','9','10'] def group_elements(lst, chunk_size): lst = iter(lst) return iter(lambda: tuple(islice(lst, chunk_size)), ()) for new_list in group_elements(test_list , 3): print(new_list)
Keluaran
('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10',)
Pisahkan Daftar dengan Python menjadi Potongan Menggunakan Metode ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') 4
Pustaka ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') _4 juga dapat digunakan untuk membagi daftar menjadi potongan berukuran N. Fungsi ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') _6 membagi array menjadi sub-array dengan ukuran tertentu [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']] 4
Kode contoh lengkap diberikan di bawah ini
import numpy n = numpy.arange(11) final_list = numpy.array_split(n,4); print("The Final List is:", final_list)
Fungsi ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') _8 mengurutkan nilai sesuai dengan argumen yang diberikan dan fungsi ('1', '2', '3') ('4', '5', '6') ('7', '8', '9') ('10', 'x', 'x') 6 menghasilkan daftar/sub-array berdasarkan parameter yang diberikan di dalamnya sebagai parameter
Keluaran
The Final List is: [array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8]), array([ 9, 10])]
Pisahkan Daftar Menjadi Potongan dengan Python Menggunakan Fungsi yang Ditentukan Pengguna
Metode ini akan mengulangi daftar dan menghasilkan potongan berukuran n berturut-turut di mana n mengacu pada nomor di mana pemisahan perlu diterapkan. Kata kunci test_list = ['1','2','3','4','5','6','7','8','9','10'] x = 3 final_list= lambda test_list, x: [test_list[i:i+x] for i in range(0, len(test_list), x)] output=final_list(test_list, x) print('The Final List is:', output) 0 digunakan dalam fungsi ini dan memungkinkan fungsi dihentikan dan dipulihkan saat nilainya berubah saat eksekusi ditangguhkan. Ini adalah perbedaan penting dari fungsi normal. Fungsi normal tidak dapat kembali ke tempat yang ditinggalkannya. Fungsi ini disebut Generator ketika kita menggunakan pernyataan test_list = ['1','2','3','4','5','6','7','8','9','10'] x = 3 final_list= lambda test_list, x: [test_list[i:i+x] for i in range(0, len(test_list), x)] output=final_list(test_list, x) print('The Final List is:', output) 0 dalam sebuah fungsi. Generator menghasilkan atau mengembalikan nilai dan tidak dapat dinamai sebagai fungsi sederhana, melainkan sebagai iterable, mis. e. , menggunakan lingkaran