📜  不均匀的数组切片块 - Python (1)

📅  最后修改于: 2023-12-03 15:21:31.375000             🧑  作者: Mango

不均匀的数组切片块 - Python

在Python中,我们有时需要把一个数组分割成几个均匀大小的切片块。但是,有时候我们需要根据数组中元素的大小来切割数组。这就是所谓的不均匀的数组切片块。

下面是一个演示如何实现不均匀的数组切片块的代码示例。

def chunk_array(arr, chunk_size):
    chunks = []
    current_chunk = []
    current_size = 0
    
    for item in arr:
        current_chunk.append(item)
        current_size += len(item)
        
        if current_size >= chunk_size:
            chunks.append(current_chunk)
            current_chunk = []
            current_size = 0
            
    if current_chunk:
        chunks.append(current_chunk)
        
    return chunks

这个函数接受一个列表和一个整数作为参数。它将列表分割成许多切片块,以使每个切片块中元素的总大小不超过指定的大小。具体来说,函数遍历列表中的每个元素,并将其添加到当前切块中。它还维护当前切片块的大小,并在达到指定大小时将其添加到chunks列表中。最后,函数返回由切片块组成的列表。

下面是针对上述代码的一些示例输入和输出:

arr = ["apple", "banana", "cherry", "dates"]
chunk_size = 10
print(chunk_array(arr, chunk_size)) # [['apple', 'banana'], ['cherry', 'dates']]

arr = ["apple", "banana", "cherry", "dates"]
chunk_size = 5
print(chunk_array(arr, chunk_size)) # [['apple'], ['banana'], ['cherry'], ['dates']]

arr = ["apple", "banana", "cherry", "dates"]
chunk_size = 20
print(chunk_array(arr, chunk_size)) # [['apple', 'banana', 'cherry', 'dates']]

总之,这个函数是一个有用的工具,可以用于将不均匀大小的数组切割成若干块。