一个
列表
可以根据定义的块的大小进行分割。将一个列表分割成n个部分,返回一个包含相等数量列表元素的
n
个列表。如果列表的数量
n
没有平均分成被分割的列表的长度,那么有些列表会比其他列表多一个元素。
让我们以传统的方式来分割列表。
Python 列表分割
要在
Python
中
分割
一个
列表
,以 iterable 作为列表调用
len(iterable)
方法,找出它的长度,然后用 // 运算符将长度除以 2,找出列表的 mid_index。
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)
[11, 18]
[19, 21]
正如你在输出中所看到的,我们将列表精确地分成了两半。我们使用了冒号运算符(:)来访问分割后的列表的第一和第二部分。
如何在 Python 中把一个列表分割成 n 个部分
要在 Python 中把一个列表分成 n 部分,请使用**numpy.array_split()**函数。np.split() 函数将数组分割成多个子数组。
numpy array_split()方法返回n个Numpy数组的列表,每个数组包含列表中大致相同数量的元素。
import numpy as np
listA = [11, 18, 19, 21, 29, 46]
splits = np.array_split(listA, 3)
for array in splits:
print(list(array))
[11, 18]
[19, 21]
[29, 46]
在这个例子中,我们把列表分成了3部分。
在 Python 中把一个列表分割成 N 个元素的偶数块
一个列表可以根据定义的块的大小来分割。这意味着我们可以确定大块的大小。如果一个列表的子集不适合定义的块的大小,需要在空元素持有者的位置插入填充物。我们将使用None作为过滤器来填充这些空元素座。
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)))
[[11, 21, 31, 41, 51, 61, 71], [81, 91, 101, 111, 112, 113, None]]
列表已经被分割成相等的小块,每个小块有7个元素。
上面的list_split()函数接收参数:listA表示列表,chunk_size表示要分割的数字。然后,该函数以块的大小n为增量对列表进行迭代。
每个分块都被期望有一个作为参数的大小。如果没有足够的元素来分割相同的大小,剩下的未使用的元素将被填充为None。
这就是 Python 中分割列表的方法。
用多个参数分割字符串
Python 中的分割线
Python 中的字符串 rsplit()
Python字符串splitlines()
The postHow to Split List in Pythonappeared first onAppDividend.