Bagaimana Anda membagi daftar menjadi beberapa baris dengan python?

Daftar dapat dibagi berdasarkan ukuran potongan yang ditentukan. Memisahkan daftar menjadi n bagian mengembalikan daftar n daftar yang berisi jumlah elemen daftar yang sama

Jika 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

  1. Menggunakan len(). Metode len() mengembalikan panjang daftar dan kemudian menggunakan pembagian lantai
  2. Menggunakan pemahaman daftar. Pisahkan daftar menjadi potongan-potongan, dan berikan N ke pemahaman daftar
  3. Menggunakan untuk loop. Gunakan perulangan for untuk membagi daftar menjadi potongan-potongan yang berbeda
  4. 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()

Bagaimana Anda membagi daftar dengan Python?

Metode Python String split() . Anda dapat menentukan pemisah, pemisah default adalah spasi putih apa pun. Catatan. Ketika maxsplit ditentukan, daftar akan berisi jumlah elemen yang ditentukan ditambah satu. The split() method splits a string into a list. You can specify the separator, default separator is any whitespace. Note: When maxsplit is specified, the list will contain the specified number of elements plus one.

Bagaimana Anda membagi daftar panjang dengan Python?

Jika Anda memiliki baris kode yang sangat panjang dengan Python dan Anda ingin membaginya menjadi beberapa baris, jika Anda berada di dalam tanda kurung, tanda kurung siku, atau . .

Bagaimana Anda membagi daftar menjadi bagian N dengan Python?

array_split(list, n) hanya akan membagi daftar menjadi n bagian.