Lewati ke konten utama

Cara Memecah List di Python: Contoh Dasar dan Metode Lanjutan

Pelajari cara membagi list Python dengan teknik seperti slicing, list comprehension, dan itertools. Ketahui kapan menggunakan tiap metode untuk penanganan data yang optimal.
· 11 mnt Baca

Jelajahi bersama AI

List di Python adalah tipe data array yang dinamis dan mutable untuk menyimpan item berurutan. Memecah list adalah tugas umum di Python, penting untuk memanipulasi dan menganalisis data secara efisien. 

Anda dapat mempelajari lebih lanjut tentang analisis data dengan mengikuti jalur karier Data Analyst with Python untuk mengasah keterampilan Anda, yang membahas berbagai metode untuk memecah list di Python, termasuk contoh praktis dan praktik terbaik. 

Menguasai teknik-teknik ini akan meningkatkan kemampuan coding Anda, membuat skrip lebih efisien dan mudah dirawat. Mari kita mulai.

Jawaban Singkat: Cara Memecah List di Python

  • Cara paling sederhana untuk membagi list di Python adalah dengan slicing menggunakan operator :. Misalnya, kita dapat membagi list seperti ini: split_list = my_list[:5], yang memotong list pada indeks kelima. 

  • Sisanya dari artikel ini membahas metode lain untuk membagi list, termasuk list comprehension, itertools, numpy, dan lainnya. Setiap metode memiliki keunggulan unik dan cocok untuk kasus penggunaan yang berbeda, seperti yang akan kita lihat.

Metode paling umum: membagi list menggunakan slicing

Memecah list Python pada indeks kemungkinan merupakan teknik paling umum. Metode slicing memastikan list Python dipecah menjadi sublist pada indeks yang ditentukan. Berikut panduan langkah demi langkah cara menerapkan slicing di Python.

  • Definisikan List: Misalkan Anda memiliki list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] dan ingin membaginya pada indeks tertentu n.
  • Tentukan Indeks Pembagian: Tentukan indeks n tempat Anda ingin memotong list.
  • Buat Slice Pertama: Pada kode di bawah, buat first_slice untuk menampung elemen dari awal list hingga, tetapi tidak termasuk, indeks n.
  • Buat Slice Kedua: Definisikan second_slice untuk memasukkan semua elemen dari indeks n hingga akhir list.
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Index where the list will be split
n = 4

# Slice the list from the beginning to the nth index (not inclusive)
first_slice = my_list[:n]

# Slice the list from the nth index to the end
second_slice = my_list[n:]

# Print the first slice of the list
print("First slice:", first_slice)

# Print the second slice of the list
print("Second slice:", second_slice)

# Expected output:
# First slice: [1, 2, 3, 4]
# Second slice: [5, 6, 7, 8, 9, 10]

Memahami Pemecahan List di Python

Slicing list di Python melibatkan pengambilan sublist dari list utama. Saat Anda ingin membagi list di Python, Anda perlu memahami sintaks slicing untuk mendapatkan sublist yang tepat. Sintaks slicing adalah slice[start:stop:step].

  1. Start menunjukkan indeks mulai slicing.
  2. Stop menunjukkan indeks akhir slicing.
  3. Step menunjukkan interval antar elemen yang diambil (default 1).
# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Slice the list from index 2 to 7 (index 2 inclusive, index 7 exclusive)
# This will include elements at index 2, 3, 4, 5, and 6
sublist = my_list[2:7]

# Print the sliced sublist
print(sublist) 

# Expected output: [3, 4, 5, 6, 7]

Menurut kode di atas, slicing dimulai dari indeks 2 hingga indeks 6 karena sublist tidak mencakup indeks 7.

Manfaat memecah list Python untuk keterbacaan dan efisiensi kode mencakup:

  • Menyederhanakan Pengelolaan Data: Dengan membagi data menjadi potongan yang mudah dikelola, data scientist dapat dengan mudah memisahkan data pelatihan dan pengujian dalam machine learning.
  • Meningkatkan Modularitas: Menulis fungsi dengan sublist tertentu meningkatkan modularitas dalam kode Anda.
  • Mengoptimalkan Performa: Menggunakan potongan list yang lebih kecil menghasilkan pemrosesan lebih cepat dibanding menggunakan list penuh.
  • Meningkatkan Efisiensi Memori: Metode ini membuat potongan tanpa menyalin data dasar, sehingga hemat memori.

Berbagai Teknik untuk Memecah List di Python

Ada berbagai metode untuk membagi list di Python. Di bawah ini adalah contoh umum yang mungkin ditemui praktisi data saat berlatih.

Menggunakan slicing list

Slicing list Python menggunakan operator : untuk memotong list pada indeks. Metode ini memanfaatkan teknik pengindeksan untuk menentukan awal dan akhir slicing.

Berbagai teknik slicing meliputi:

Slicing dengan indeks positif

Metode ini menggunakan nilai indeks positif, dari kiri ke kanan, untuk mengakses elemen dalam list.

# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Slice the list from index 2 to 7 (index 2 inclusive, index 7 exclusive)
# This will include elements at index 2, 3, 4, 5, and 6
sublist = my_list[2:7]

# Print the sliced sublist
print(sublist) 

# Expected output: [3, 4, 5, 6, 7]

Slicing dengan indeks negatif

Metode memecah list Python ini menggunakan nilai indeks negatif mulai dari elemen terakhir di list, dari kanan ke kiri.

# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Slice the list to get the last 5 elements
sublist = my_list[-5:]

# Print the sliced sublist containing the last 5 elements
print(sublist)

# Slice the list to get all elements except the last 3
sublist = my_list[:-3]

# Print the sliced sublist containing all but the last 3 elements
print(sublist)

# Expected output:
# [6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7]

Menggunakan parameter step

Pendekatan ini menggunakan langkah tertentu untuk memilih elemen saat mengakses elemen berbeda dalam list.

# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Slice the list to get every second element, starting from the beginning
sublist = my_list[::2]

# Print the sliced sublist containing every second element
print(sublist) 

# Slice the list to get every second element, starting from index 1
sublist = my_list[1::2]

# Print the sliced sublist containing every second element, starting from index 1
print(sublist) 

# Slice the list to get the elements in reverse order
sublist = my_list[::-1]

# Print the sliced sublist containing the elements in reverse order
print(sublist) 

# Expected output:
# [1, 3, 5, 7, 9]
# [2, 4, 6, 8, 10]
# [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Menghilangkan indeks

Metode ini melakukan slicing pada list Python dengan mengembalikan hanya elemen yang diperlukan dalam list.

# Define a list of integers from 1 to 10
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Slice the list from the start to index 5 (index 5 not inclusive)
sublist = my_list[:5]

# Print the sliced sublist containing elements from the start to index 4
print(sublist) 

# Slice the list from index 5 to the end
sublist = my_list[5:]

# Print the sliced sublist containing elements from index 5 to the end
print(sublist) 

# Slice the list to get the entire list
sublist = my_list[:]

# Print the sliced sublist containing the entire list
print(sublist) 

# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9, 10]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Menggunakan list comprehension

List comprehension di Python memungkinkan Anda membagi list menjadi potongan berdasarkan nilai pada list yang ada.

# Define a function to split a list into chunks of a specified size
def split_list(lst, chunk_size):
    # Use a list comprehension to create chunks
    # For each index 'i' in the range from 0 to the length of the list with step 'chunk_size'
    # Slice the list from index 'i' to 'i + chunk_size'
    return [lst[i:i + chunk_size] for i in range(0, len(lst), chunk_size)]

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# Split the list into chunks of size 3 using the split_list function
chunks = split_list(my_list, 3)

# Print the resulting list of chunks
print(chunks)

# Expected output:
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]

Kode di atas membagi list Python menjadi n potongan berukuran tiga untuk mengembalikan list baru berisi list potongan dengan 3 nilai.

Menggunakan Itertools

Memecah list Python menggunakan itertools memanfaatkan modul Python untuk mentransformasikan data melalui iterasi.

# Import the islice function from the itertools module
from itertools import islice
# Define a function to yield chunks of a specified size from an iterable
def chunks(iterable, size):
    # Create an iterator from the input iterable
    iterator = iter(iterable)
    
    # Loop over the iterator, taking the first element in each iteration
    for first in iterator:
        # Yield a list consisting of the first element and the next 'size-1' elements from the iterator
        yield [first] + list(islice(iterator, size - 1))

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# Convert the generator returned by the chunks function into a list of chunks
chunked_list = list(chunks(my_list, 3))

# Print the resulting list of chunks
print(chunked_list)

# Expected output:
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]

Menggunakan numpy

Library numpy di Python berguna untuk membagi array menjadi sublist. Fungsi .array_split() memungkinkan pemisahan saat menentukan jumlah potongan.

# Import the numpy library and alias it as np
import numpy as np

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# Use numpy's array_split function to split the list into 3 chunks
chunks = np.array_split(my_list, 3)

# Convert each chunk back to a regular list and print the resulting list of chunks
print([list(chunk) for chunk in chunks])

# Expected output:
# [[np.int32(1), np.int32(2), np.int32(3), np.int32(4), np.int32(5)], [np.int32(6), np.int32(7), np.int32(8), np.int32(9), np.int32(10)], [np.int32(11), np.int32(12), np.int32(13), np.int32(14), np.int32(15)]]

Membagi list menjadi potongan (chunks)

Fungsi Python berikut juga memungkinkan Anda membagi list menjadi potongan. Potongan ini dapat disesuaikan tergantung jumlah yang dibutuhkan pengguna.

# Define a function to split a list into chunks of a specified size
def split_into_chunks(lst, chunk_size):
    chunks = []  # Initialize an empty list to store chunks
    
    # Iterate over the list with a step of chunk_size
    for i in range(0, len(lst), chunk_size):
        # Slice the list from index 'i' to 'i + chunk_size' and append it to chunks
        chunks.append(lst[i:i + chunk_size])
    
    return chunks  # Return the list of chunks

# Define a list of integers from 1 to 16
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

# Split the list into chunks of size 4 using the split_into_chunks function
chunks = split_into_chunks(my_list, 4)

# Print the resulting list of chunks
print(chunks)

# Expected output:
# [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

Membagi list berdasarkan kondisi

Saat Anda ingin membagi list di Python, Anda dapat menetapkan aturan/kondisi untuk sublist. Metode ini memungkinkan Anda membuat sublist yang memenuhi kondisi tersebut.

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# List comprehension to filter elements divisible by 3
div_3 = [x for x in my_list if x % 3 == 0]

# List comprehension to filter elements not divisible by 3
not_div_3 = [x for x in my_list if x % 3 != 0]

# Print the list of elements divisible by 3
print(div_3)

# Print the list of elements not divisible by 3
print(not_div_3)

# Expected output:
# [3, 6, 9, 12, 15]
# [1, 2, 4, 5, 7, 8, 10, 11, 13, 14]

Menggunakan for loop

For loop juga dapat digunakan untuk membagi list di Python berdasarkan kondisi dan melalui iterasi.

# Define a function to split a list into sub-lists of size n
def split_by_n(lst, n):
    # Use a list comprehension to create sub-lists
    # For each index 'i' in the range from 0 to the length of the list with step 'n'
    # Slice the list from index 'i' to 'i + n'
    return [lst[i:i + n] for i in range(0, len(lst), n)]

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# Split the list into sub-lists of size 5 using the split_by_n function
sub_lists = split_by_n(my_list, 5)

# Print the resulting list of sub-lists
print(sub_lists) 

# Expected output:
# [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

Menggunakan fungsi zip()

Anda juga dapat menggunakan fungsi zip() di Python untuk membagi list melalui pemasangan berpasangan.

# Define two lists: list1 containing integers from 1 to 10, and list2 containing letters from 'a' to 'j'
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

# Use the zip function to pair corresponding elements from list1 and list2 into tuples
paired = list(zip(list1, list2))

# Print the list of paired tuples
print(paired)

# Expected output:
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f'), (7, 'g'), (8, 'h'), (9, 'i'), (10, 'j')]

Menggunakan fungsi enumerate()

Fungsi enumerate() membagi list Python menggunakan kondisi indeks. Fungsi ini menggunakan iterasi untuk membagi list menjadi potongan yang sama besar.

# Define a list of integers from 1 to 15
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

# Define the chunk size for splitting the list
chunk_size = 5

# Create a list of empty lists, one for each chunk
split_list = [[] for _ in range(chunk_size)]

# Iterate over the elements and their indices in my_list
for index, value in enumerate(my_list):
    # Calculate the index of the sublist where the current value should go using modulo operation
    sublist_index = index % chunk_size
    
    # Append the current value to the corresponding sublist in split_list
    split_list[sublist_index].append(value)

# Print the list of sublists after splitting my_list into chunks
print(split_list)

# Expected output:
# [[1, 6, 11], [2, 7, 12], [3, 8, 13], [4, 9, 14], [5, 10, 15]]

Memecah string menjadi list di Python

Menggunakan metode split()

Metode split() membagi string menjadi list di Python, dengan delimiter yang ditentukan. Metode ini mengembalikan substring sesuai jumlah delimiter dalam string yang diberikan.

# Define a string
myString = "Goodmorning to you"

# Split the string into a list of words based on whitespace (default separator)
my_list = myString.split()

# Print the resulting list
print(my_list) 

# Expected output: ['Goodmorning', 'to', 'you']

Menggunakan metode splitlines()

Metode splitlines() membagi string menjadi list di Python berdasarkan karakter baris baru.

# Define a string with newline characters
myString = "Goodmorning\nto\nyou"

# Split the string into a list of lines based on newline characters
my_list = myString.splitlines()

# Print the resulting list
print(my_list)

# Expected output: ['Goodmorning', 'to', 'you']

Menggunakan metode partition()

Metode partition() membagi string menjadi list di Python menggunakan pemisah yang diberikan. Metode ini mengembalikan tiga bagian: string sebelum pemisah, pemisahnya, dan segala sesuatu setelah pemisah sebagai list.

# Define a string with a delimiter '/'
myString = "Goodmorning/to you"

# Use the partition() method to split the string into three parts based on the first occurrence of '/'
my_list = myString.partition('/')

# Print the resulting tuple
print(my_list)

# Expected output: ('Goodmorning', '/', 'to you')

Menggunakan regular expression

Di Python, regular expression juga dapat digunakan untuk membagi string menjadi list. Contoh di bawah menunjukkan cara melakukannya menggunakan spasi.

# Import the 're' module for regular expressions
import re

# Define a string
myString = "Goodmorning to you"

# Use re.split() to split the string based on whitespace ('\s' matches any whitespace character)
# Returns a list of substrings where the string has been split at each whitespace
my_list = re.split('\s', myString)

# Print the resulting list
print(my_list)

# Expected output: ['Goodmorning', 'to', 'you']

Tabel perbandingan

Berikut tabel agar Anda dapat melihat sekilas kapan berbagai teknik mungkin berguna. Secara praktis, teknik yang sama mungkin bekerja untuk banyak kasus tanpa perbedaan kinerja yang mencolok, sehingga sorotan tentang kapan teknik tertentu paling berguna mungkin agak dilebih-lebihkan. 

TeknikKasus PenggunaanKapan Berguna
SlicingMembagi list pada indeks tertentu atau rentang indeks.Berguna untuk pemisahan yang sederhana dan langsung.
List ComprehensionsMembuat sublist berdasarkan nilai atau kondisi dalam list.Berguna untuk pemisahan berbasis kriteria yang lebih kompleks.
itertools.isliceMembagi list menjadi potongan berukuran tertentu menggunakan iterator.Berguna untuk menangani list besar secara efisien.
numpy.array_splitMembagi array menjadi sublist berdasarkan jumlah potongan yang diinginkan.Berguna untuk menangani data numerik secara efisien.
Pemecahan Berbasis KondisiMembagi list berdasarkan kondisi seperti keterbagian.Berguna untuk memisahkan data ke dalam sublist yang bermakna.
For LoopMelakukan iterasi melalui list untuk membuat sublist berukuran tertentu.Berguna untuk kontrol lebih atas proses pemisahan.
Fungsi zip()Memasangkan elemen dari dua list.Berguna untuk menggabungkan data dari dua list terkait.
Fungsi enumerate()Membagi list menggunakan kondisi indeks, sering untuk potongan berukuran sama.Berguna untuk membuat sublist yang terdistribusi merata.
Metode split()Membagi string menjadi list berdasarkan delimiter yang ditentukan.Berguna untuk pemrosesan data teks.
Metode splitlines()Membagi string menjadi list berdasarkan karakter baris baru.Berguna untuk membaca data teks dengan banyak baris.
Metode partition()Membagi string menjadi tiga bagian berdasarkan pemisah tertentu.Berguna untuk skenario pemrosesan teks tertentu.
Regular ExpressionMenggunakan regex untuk membagi string menjadi list berdasarkan pola kompleks.Berguna untuk manipulasi data teks tingkat lanjut.

Kesalahan Umum dan Cara Menghindarinya

Seorang praktisi data mungkin menemui beberapa kesalahan umum saat menangani pemecahan list di Python. Di bawah ini beberapa jebakan umum dan cara menghindarinya.

Kesalahan off-by-one

Kesalahan off-by-one terjadi saat slicing dasar ketika Anda memasukkan lebih sedikit atau lebih banyak indeks daripada yang diperlukan pada list.

my_list = [1, 2, 3, 4, 5]

# Trying to get sublist from index 2 to 4, inclusive
sublist = my_list[2:5]  # Correct: my_list[2:5]
print(sublist)

# Incorrect usage:
sublist = my_list[2:4]  # Incorrect, excludes index 4
print(sublist)

# Expected output:
# [3, 4, 5]
# [3, 4]

Untuk menghindari kesalahan ini, pahami urutan pengindeksan di Python dan ketahui apa yang harus disertakan atau dikecualikan saat mengindeks.

Kesalahan pada paket yang digunakan

Anda juga dapat menemui kesalahan pada paket, terutama ketika metode pemisahan membutuhkan modul Python. Contohnya termasuk paket numpy, re, dan itertools. Untuk menghindari kesalahan ini, pastikan paket dimuat dengan benar dan digunakan dalam versi yang kompatibel.

Menangani edge case

Edge case dapat terjadi saat memecah list di Python ketika Anda tidak memperhitungkan beberapa skenario. Misalnya, cuplikan di bawah menunjukkan fungsi yang mencoba membagi list menjadi potongan 5 saat list hanya berisi 4 item.

import numpy as np

my_list = [1, 2, 3, 4]
chunks = np.array_split(my_list, 5)
print(chunks)

# Expected output: 
# [array([1]), array([2]), array([3]), array([4]), array([], dtype=int32)]

Untuk menghindari kesalahan ini, gunakan pernyataan kondisional untuk menangani edge case, seperti di bawah ini.

import numpy as np

my_list = [1, 2, 3, 4]
if len(my_list) < 5:
    chunks = [my_list]
else:
    chunks = np.array_split(my_list, 5)
print(chunks)

# Expected output: [[1, 2, 3, 4]]

Menangani karakter khusus

Gagal menangani karakter khusus dengan benar juga dapat menyebabkan kesalahan saat membagi list string di Python. Karakter khusus ini termasuk spasi, koma, atau alfanumerik.

Contoh di bawah menunjukkan cara menghindari kesalahan ini dengan menentukan karakter untuk memisahkan list string.

# Example list with special characters
my_list = ["apple, orange", "dog, mouse", "green, blue"]

# Splitting each string by the comma
split_list = [s.split(",") for s in my_list]
print(split_list)

# Expected output:
# [['apple', ' orange'], ['dog', ' mouse'], ['green', ' blue']]

Praktik Terbaik dan Pedoman

Karena memecah list di Python adalah operasi umum dalam analisis data, penting untuk mengikuti beberapa praktik guna memastikan efisiensi. Rekomendasi ini meliputi:

  • Pertahankan Immutability Jika Memungkinkan: Jika list asli tidak boleh diubah, pastikan operasi slicing Anda tidak mengubah list asli. Slicing membuat list baru, jadi ini biasanya tidak menjadi masalah, tetapi waspadai saat bekerja dengan struktur data yang lebih kompleks.
  • Optimalkan untuk Performa: Saat menangani list besar, perhatikan implikasi performa. Slicing umumnya efisien, tetapi penyalinan list besar yang tidak perlu dapat menyebabkan bottleneck performa.
  • Tangani Edge Case: Pertimbangkan kasus seperti list kosong, pemisahan di awal atau akhir list, dan indeks tidak valid. Pastikan kode Anda dapat menangani skenario ini dengan baik.
  • Sertakan Penanganan Error dan Validasi: Penanganan error sangat penting saat Anda ingin membagi list menjadi beberapa list di Python, agar kode tidak rusak dan menimbulkan kejutan. 

Kursus Python Programming dari DataCamp memberikan penjelasan mendetail tentang praktik terbaik untuk menulis kode secara efisien, dengan mempertimbangkan konsep umum seperti penanganan error dan performa. 

Teknik Pemecahan List Lanjutan

Pemecahan list dapat dibawa ke tingkat lanjut dengan memanfaatkan berbagai metode yang menawarkan lebih banyak kontrol dan fleksibilitas. 

Membagi list menjadi banyak list

Anda dapat membagi list Python menjadi beberapa list dengan menentukan pemisahan pada indeks tertentu. Misalnya, kode di bawah membagi list pada indeks 2, 5, 7.

def split_at_indices(lst, indices):
    result = []
    prev_index = 0
    for index in indices:
        result.append(lst[prev_index:index])
        prev_index = index
    result.append(lst[prev_index:])
    return result

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
indices = [2, 5, 7]
split_lists = split_at_indices(my_list, indices)
print(split_lists)

# Expected output: [[1, 2], [3, 4, 5], [6, 7], [8, 9, 10]]

Membagi list menjadi bagian yang sama

Anda juga dapat menggunakan library bawaan seperti ‘numpy’ untuk membagi list Python menjadi bagian yang sama berdasarkan jumlah bagian yang Anda inginkan.

import numpy as np

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
num_parts = 3
split_lists = np.array_split(my_list, num_parts)
print([list(arr) for arr in split_lists])

# Expected output:
# [[np.int32(1), np.int32(2), np.int32(3), np.int32(4), np.int32(5)], [np.int32(6), np.int32(7), np.int32(8), np.int32(9), np.int32(10)], [np.int32(11), np.int32(12), np.int32(13), np.int32(14), np.int32(15)]]

Membagi list menjadi dua

Anda dapat menggunakan slicing untuk membagi list Python menjadi dua bagian.

def split_in_half(lst):
    # Calculate the midpoint index of the list
    mid_index = len(lst) // 2
    # Return the two halves of the list
    return lst[:mid_index], lst[mid_index:]

# Example list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Split the list into two halves
first_half, second_half = split_in_half(my_list)
print(first_half)
print(second_half)

# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9, 10]

Untuk list dengan jumlah elemen ganjil, Anda dapat menentukan indeks yang termasuk dalam bagian pertama.

def split_in_half(lst):
    # Calculate the midpoint index of the list, including the middle element in the first half if the length is odd
    mid_index = (len(lst) + 1) // 2
    # Return the two halves of the list
    return lst[:mid_index], lst[mid_index:]

# Example list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Split the list into two halves, handling odd-length
first_half, second_half = split_in_half(my_list)
print(first_half) 
print(second_half) 

# Expected output:
# [1, 2, 3, 4, 5]
# [6, 7, 8, 9]

Python Developer juga memberikan wawasan tentang cara menulis kode lanjutan yang akan membantu Anda memahami teknik pemecahan list tingkat lanjut.

Kesimpulan

Ada berbagai metode untuk membagi list di Python. Setiap metode bergantung pada jenis list dan preferensi pengguna terhadap efisiensi. Sebagai praktisi data, penting untuk memilih metode pemecahan list yang sesuai dengan analisis Anda.

Untuk pemahaman menyeluruh tentang pemecahan list di Python, Anda dapat belajar lebih lanjut dari kursus kami, Python Fundamentals. Anda juga dapat mengikuti kursus Introduction to Python untuk memastikan Anda menguasai operasi pada list dan tipe data lain di Python. Python Cheat Sheet for Beginners juga berguna saat Anda ingin melihat sekilas cara membagi list di Python.

Allan Ouko

Penulis

Allan Ouko

Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Pertanyaan yang Sering Diajukan

Kapan saya perlu membagi list di Python?

Memecah list di Python penting untuk pemrosesan data, terutama saat mengelola dataset besar. Transformasi ini membantu ketika Anda membagi data untuk melakukan analisis, seperti pelatihan dan pengujian model machine learning.

Apa yang harus saya lakukan jika modul itertools dan numpy menampilkan error?

Pastikan Anda telah memasang library Python yang sesuai. Jika error tetap muncul, pastikan Anda memperbarui dan menggunakan versi library yang kompatibel.

Apa perbedaan antara membagi list Python dan partition()?

Metode partition() mengembalikan tiga tuple di mana argumen kondisional berada di tengah.

Bisakah saya membagi list Python dengan delimiter atau nilai tertentu?

Anda perlu menentukan delimiter atau nilai tertentu untuk membagi list.

Bagaimana cara meningkatkan performa kode saat saya membagi list menjadi beberapa list?

Gunakan fungsi yang dapat digunakan ulang saat membagi list menjadi banyak list. Pendekatan ini memastikan efisiensi.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026