Membagi daftar daftar menjadi beberapa daftar python

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 banyak maxsplit 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 maxsplit1, 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

  1. Gunakan pemahaman daftar untuk mengulangi daftar
  2. Gunakan metode str.split()_ untuk membagi setiap string dengan spasi
  3. 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 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 menjadi banyak daftar dengan Python?

Membagi Daftar menjadi Potongan Menggunakan NumPy .
Kami mengubah daftar kami menjadi array Numpy
Kami membagi array kami menjadi n jumlah array menggunakan np. fungsi array_split()
Akhirnya, kami menggunakan pemahaman daftar untuk mengembalikan semua array dalam daftar array kami menjadi daftar

Bagaimana cara memisahkan daftar dalam daftar?

Biasanya, kami menggunakan koma untuk memisahkan tiga item atau lebih dalam daftar. Namun, jika satu atau beberapa item ini berisi koma, Anda harus menggunakan titik koma, bukan koma, untuk memisahkan item dan menghindari kemungkinan kebingungan.

Bisakah 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 menjadi bagian N dengan Python?

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