Cara membagi daftar angka dengan python

Perhatikan bahwa tidak selalu mungkin untuk menghasilkan daftar di mana potongannya sama panjangnya. Ini karena elemen daftar mungkin tidak dapat dibagi secara merata ke potongan N

Cara membagi daftar angka dengan python

Ini adalah panduan komprehensif untuk membagi daftar menjadi potongan-potongan N dengan Python. Jika Anda mencari solusi cepat, saya yakin hal di atas akan berhasil. Tetapi jika Anda mempelajari Python, pastikan untuk membaca seluruh panduan untuk mengetahui berbagai pendekatan untuk membagi daftar menjadi potongan-potongan. Ide dari panduan ini bukan untuk menggunakan solusi yang sudah ada tetapi untuk mengimplementasikan sendiri logikanya

Mari lompat ke dalamnya

1. Pendekatan Iterator

Berikut adalah contoh cara membagi daftar Python menjadi potongan berukuran sama menggunakan iterator dan kata kunci hasil

def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)

Kode ini akan menampilkan yang berikut

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
_

Mari kita lihat kodenya lebih dekat

Fungsi

def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)
0 membutuhkan dua argumen. daftar
def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)
1 dan bilangan bulat
def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)
2 yang menentukan ukuran setiap potongan. Fungsi menggunakan
def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)
3 loop untuk mengulangi daftar, dan menghasilkan sublist
def split_list(lst, chunk_size):
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i+chunk_size]

# Example usage
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunk_size = 3

for chunk in split_list(lst, chunk_size):
      print(chunk)
1 mulai dari indeks saat ini dan berakhir pada indeks saat ini ditambah ukuran potongan

Berikut adalah penjelasan langkah demi langkah tentang cara kerja kode

  1. Fungsi
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    0 dipanggil dengan daftar
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    1 dan ukuran potongan
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    2
  2. Loop
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    3 mengulang daftar, mulai dari indeks 0 dan menambah indeks dengan
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    2 setiap kali. Misalnya, jika ukuran chunk adalah 3, iterasi pertama akan dimulai pada indeks 0, iterasi kedua akan dimulai pada indeks 3, iterasi ketiga akan dimulai pada 6, dan seterusnya.
  3. Pada setiap iterasi, kata kunci
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    _0 membangun sublist
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    1 mulai dari indeks saat ini dan berakhir pada indeks saat ini ditambah ukuran potongan. e. g. jika indeks saat ini adalah 0 dan ukuran potongan adalah 3, sublist akan menjadi
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    2, yang merupakan tiga elemen dari
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    1
  4. Loop
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    3 dalam kode contoh kemudian mengulangi potongan yang dihasilkan oleh
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    0 dan mencetak setiap potongan

Hasil dari semua ini adalah daftar yang dibagi menjadi N potongan

Tapi Apa yang Dilakukan 'hasil'?

Pendekatan yang diperkenalkan sebelumnya adalah yang termudah untuk membagi daftar menjadi beberapa bagian. Tetapi jika Anda baru mengenal

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
_0 kata kunci dan iterator, solusi ini mungkin membuat Anda bingung

Jika Anda tertarik dengan iterator, pastikan untuk membaca panduan lengkap ini untuk iterator dan iterable dengan Python

Bagian selanjutnya mengajarkan Anda bagaimana melakukan pendekatan sebelumnya tanpa menggunakan kata kunci

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
0 tetapi menggunakan daftar sebagai gantinya

2. Untuk Pendekatan Loop

Berikut cara lain untuk membagi daftar menjadi beberapa bagian dengan Python. Pendekatan ini menggunakan for loop dan daftar dan dengan demikian sedikit lebih ramah-pemula daripada contoh sebelumnya

Berikut adalah langkah-langkah yang perlu Anda ambil

  1. Tentukan jumlah potongan yang Anda inginkan untuk membagi daftar. Sebut saja nomor ini
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    _8
  2. Lantai-bagi panjang daftar dengan
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    8 untuk menemukan ukuran setiap potongan (pembagian lantai dibulatkan ke bawah sehingga ukuran potongan tidak e. g. 3. 3333 tetapi malah hanya 3). Kami akan menghubungi nomor ini
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    2
  3. Gunakan fungsi
    # Set the number of chunks
    N = 4
    
    # Create a list of numbers
    my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    # Create an empty list to store the chunks
    chunks = []
    
    # Iterate over the elements of the list in groups of N
    for i in range(0, len(my_list), N):
      # Extract each group of N elements as a sublist
      chunk = my_list[i:i + N]
      
      # Append the sublist to the list of chunks
      chunks.append(chunk)
    
    # Print the chunks
    print(chunks)
    
    _1 untuk membuat daftar angka yang menentukan indeks di mana setiap potongan harus dimulai. Jika daftar asli memiliki 10 elemen dan Anda ingin membaginya menjadi 3 bagian, daftar indeks awal adalah
    # Set the number of chunks
    N = 4
    
    # Create a list of numbers
    my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    # Create an empty list to store the chunks
    chunks = []
    
    # Iterate over the elements of the list in groups of N
    for i in range(0, len(my_list), N):
      # Extract each group of N elements as a sublist
      chunk = my_list[i:i + N]
      
      # Append the sublist to the list of chunks
      chunks.append(chunk)
    
    # Print the chunks
    print(chunks)
    
    2
  4. Gunakan loop
    def split_list(lst, chunk_size):
        for i in range(0, len(lst), chunk_size):
            yield lst[i:i+chunk_size]
    
    # Example usage
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    chunk_size = 3
    
    for chunk in split_list(lst, chunk_size):
          print(chunk)
    
    _3 untuk mengulangi daftar indeks awal, dan gunakan sintaks
    # Set the number of chunks
    N = 4
    
    # Create a list of numbers
    my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    # Create an empty list to store the chunks
    chunks = []
    
    # Iterate over the elements of the list in groups of N
    for i in range(0, len(my_list), N):
      # Extract each group of N elements as a sublist
      chunk = my_list[i:i + N]
      
      # Append the sublist to the list of chunks
      chunks.append(chunk)
    
    # Print the chunks
    print(chunks)
    
    4 untuk mengekstrak setiap potongan dari daftar asli

Inilah kode yang mengimplementasikan langkah-langkah tersebut. Pastikan untuk membaca komentar untuk tetap di atasnya sepanjang waktu

# Set the number of chunks
N = 4

# Create a list of numbers
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Create an empty list to store the chunks
chunks = []

# Iterate over the elements of the list in groups of N
for i in range(0, len(my_list), N):
  # Extract each group of N elements as a sublist
  chunk = my_list[i:i + N]
  
  # Append the sublist to the list of chunks
  chunks.append(chunk)

# Print the chunks
print(chunks)

Kode ini menghasilkan output berikut

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]

2. 1. Daftar Pemahaman Bisa Melakukan Hal yang Sama

Saat Anda berurusan dengan for loop, dalam beberapa kasus, Anda mungkin dapat menggunakan pemahaman daftar untuk merapikan kode

Itu selalu diperdebatkan apakah Anda harus menggunakan pemahaman atau tidak. Ini karena pemahaman daftar pasti mempersingkat kode tetapi sebenarnya membuatnya kurang mudah dibaca

Bagaimanapun, inilah contoh sebelumnya yang menggunakan pemahaman daftar alih-alih perulangan for

# Define the input list
input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Define the chunk size
chunk_size = 3

# Create the output list using a list comprehension
output_list = [input_list[i:i + chunk_size] for i in range(0, len(input_list), chunk_size)]

# Print the output list
print(output_list)

Ini akan menghasilkan output berikut

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

3. Sementara Loop

Pada contoh sebelumnya, Anda menggunakan perulangan for untuk membagi daftar menjadi potongan-potongan. Karena Anda dapat menggunakan perulangan for, Anda juga dapat melakukannya dengan perulangan while

Inilah tampilan kode saat menggunakan while loop

# define the list of elements
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# define the size of the chunks
chunk_size = 3

# create an empty list to store the chunks
chunks = []

# create an index variable to track the current position in the list
index = 0

# loop until the index is larger than the length of the list
while index < len(my_list):
    # get the sublist of the current chunk
    chunk = my_list[index:index+chunk_size]

    # append the chunk to the list of chunks
    chunks.append(chunk)

    # update the index to the next chunk
    index += chunk_size

# print the resulting chunks
print(chunks)

Keluaran

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

Solusi ini membuat daftar kosong untuk menyimpan potongan yang dihasilkan dan kemudian menggunakan while loop untuk mengulangi daftar asli dengan ukuran potongan, menambahkan setiap potongan ke daftar potongan. Variabel indeks digunakan untuk melacak posisi saat ini dalam daftar dan diperbarui pada setiap iterasi ke potongan berikutnya

4. Gunakan NumPy untuk Membagi menjadi N Potongan

Di Python, ada modul matematika dan sains populer yang disebut NumPy yang banyak digunakan oleh komunitas ilmiah Python

Jika Anda sudah menggunakan NumPy, Anda dapat menggunakan fungsi

# Set the number of chunks
N = 4

# Create a list of numbers
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Create an empty list to store the chunks
chunks = []

# Iterate over the elements of the list in groups of N
for i in range(0, len(my_list), N):
  # Extract each group of N elements as a sublist
  chunk = my_list[i:i + N]
  
  # Append the sublist to the list of chunks
  chunks.append(chunk)

# Print the chunks
print(chunks)
5 untuk membagi daftar menjadi beberapa bagian. Fungsi ini menggunakan daftar sebagai argumen pertama dan ukuran potongan sebagai argumen kedua

Perhatikan bahwa pendekatan ini memaksa elemen menjadi N potongan. Nilai sisa tidak ditempatkan di bagian mereka sendiri tetapi didorong ke bagian terakhir sebagai gantinya

Sebagai contoh, mari kita bagi daftar 10 angka menjadi 3 bagian

import numpy as np

# Define the list to be split
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Split the list into chunks of size 3
chunks = np.array_split(my_list, 3)

# Print the resulting chunks
print(chunks)

# Output: [array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9, 10])]

Perhatikan bagaimana potongan terakhir sekarang memiliki 4 elemen alih-alih mengambil elemen tambahan dan menempatkannya di potongannya sendiri

Bagaimana Anda membagi daftar nilai 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 beberapa dengan Python?

Anda dapat menggunakan fungsi array_split numpy e. g. , np. array_split(np. array(data), 20) untuk dibagi menjadi 20 potongan berukuran hampir sama. Untuk memastikan potongan berukuran persis sama, gunakan np.

Bagaimana Anda memisahkan 12345 dengan Python?

Di Python3, itu akan menjadi list(map(int,str(12345))) – Serge Stroobandt. 26 Agustus 2017 pukul 20. 51
Atau bisa juga [*map(int,str(12345))] – teepee. 26 November 2020 pukul 18. 51

Bagaimana Anda membagi angka menjadi digit terpisah dengan Python?

Gunakan str untuk mengonversi angka menjadi string sehingga Anda dapat mengulanginya. Gunakan pemahaman daftar untuk membagi string menjadi digit individual. Gunakan int untuk mengubah digit kembali menjadi bilangan bulat