Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列表拆分为一定数量的列表 打开(路径)作为文件的: h=file.read().split('\n') 链接=列表(过滤器(无,h))#147长度 chunks=[i.tolist()表示np.array中的i\u拆分(链接,10),如果i.size>0]_Python_List - Fatal编程技术网

Python 如何将列表拆分为一定数量的列表 打开(路径)作为文件的: h=file.read().split('\n') 链接=列表(过滤器(无,h))#147长度 chunks=[i.tolist()表示np.array中的i\u拆分(链接,10),如果i.size>0]

Python 如何将列表拆分为一定数量的列表 打开(路径)作为文件的: h=file.read().split('\n') 链接=列表(过滤器(无,h))#147长度 chunks=[i.tolist()表示np.array中的i\u拆分(链接,10),如果i.size>0],python,list,Python,List,如何在不使用numpy或任何外部库(未预装python3)的情况下实现相同的输出 无任何外部库的可复制代码应为: links=范围(147) chunks=[i.tolist()表示np.array中的i\u拆分(链接,10),如果i.size>0] 理想的输出是10个子列表:前7个子列表的长度为15,后3个子列表的长度为14。这并不漂亮,但这种方法应该很容易理解 导入数学 L=147 N=10 链接=范围(L) 大尺寸=数学单元(L/N) 小尺寸=数学地板(L/N) 数量大尺寸=圆形(N*(

如何在不使用
numpy
或任何外部库(未预装python3)的情况下实现相同的输出

无任何外部库的可复制代码应为:

links=范围(147)
chunks=[i.tolist()表示np.array中的i\u拆分(链接,10),如果i.size>0]

理想的输出是10个子列表:前7个子列表的长度为15,后3个子列表的长度为14。

这并不漂亮,但这种方法应该很容易理解

导入数学
L=147
N=10
链接=范围(L)
大尺寸=数学单元(L/N)
小尺寸=数学地板(L/N)
数量大尺寸=圆形(N*(L/N-小尺寸))
块=[]
ind=0
对于范围(N)中的i:
如果i
注意:这不会处理边缘情况,例如某些数组的大小为0。你可以根据需要过滤掉它们

使用填充的不同方法

导入数学
L=147
N=10
链接=范围(L)
大尺寸=数学单元(L/N)
小尺寸=数学地板(L/N)
数量大尺寸=圆形(N*(L/N-小尺寸))
链接=列表(链接)
对于范围内的i((num_big_size+1)*big_size-1,N*big_size,big_size):
链接。插入(i,无)
chunks=[links[i:i+big_size]表示范围内的i(0,N*big_size,big_size)]
chunks=[[el表示el-in-line,如果el不是None]表示line-in-chunks]
输入:

links = list(range(147))
k = 10
迭代器解决方案:

from itertools import islice
q, r = divmod(len(links), k)
it = iter(links)
chunks = [list(islice(it, q + (i < r))) for i in range(k)]
q, r = divmod(len(links), k)
i = 0
chunks = [links[i : (i := i + q + (j < r))] for j in range(k)]
从itertools导入islice
q、 r=divmod(len(links),k)
it=国际热核实验堆(链接)
chunks=[范围(k)内i的列表(islice(it,q+(i
海象解决方案:

from itertools import islice
q, r = divmod(len(links), k)
it = iter(links)
chunks = [list(islice(it, q + (i < r))) for i in range(k)]
q, r = divmod(len(links), k)
i = 0
chunks = [links[i : (i := i + q + (j < r))] for j in range(k)]
q,r=divmod(len(links),k)
i=0
范围(k)内j的块=[links[i:=i+q+(j
这是可行的,我想这将是一个4行
循环,或者可能是一个很酷的1行替代方法,将原始列表填充到N的偶数倍,进行拆分,然后将填充内容去掉。