Bagaimana untuk Membahagikan Senarai kepada Bahagian yang Hampir Sama dalam Python?

Barbara Streisand
Lepaskan: 2024-11-16 10:23:02
asal
944 orang telah melayarinya

How to Divide a List into Nearly Equal Parts in Python?

Membahagikan Senarai kepada Bahagian Yang Hampir Sama

Membahagikan senarai kepada bahagian yang sama ialah tugas biasa dalam pengaturcaraan. Kaedah ketulan() terbina dalam dalam Python menawarkan cara untuk membahagikan senarai kepada ketulan bersaiz sama, tetapi bagaimana jika anda mahu membahagikan senarai itu kepada bahagian yang lebih kurang sama?

Satu pendekatan untuk mencapainya ialah dengan gunakan penjana senarai:

def split(a, n):
    k, m = divmod(len(a), n)
    return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
Salin selepas log masuk

Begini cara ia berfungsi:

  • k ialah nombor daripada item dalam setiap bahagian, dan m ialah baki daripada membahagikan panjang senarai dengan n.
  • Gelung for berulang ke atas bilangan bahagian n yang dikehendaki.
  • Untuk setiap bahagian, ia mengira indeks permulaan dan penamat berdasarkan k, m dan lelaran semasa i.
  • Kepingan a[start:end] mengekstrak elemen untuk arus bahagian.

Contoh:

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
Salin selepas log masuk

Kod ini membahagikan senarai panjang 11 kepada 3 bahagian, menghasilkan bahagian dengan 4, 4 dan 3 elemen, masing-masing.

Atas ialah kandungan terperinci Bagaimana untuk Membahagikan Senarai kepada Bahagian yang Hampir Sama dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan