Python 有没有办法在单行for循环中增加变量?

Python 有没有办法在单行for循环中增加变量?,python,for-loop,Python,For Loop,给出以下定义 layerData = [3, 3, 2, 1, 1] bias = [0.47, -0.45, 0.31, -0.09, 0.21 ,-0.18, 0.14, -0.45, -0.39, -0.14] 从bias列表的开头开始,对于layerData中的每个元素N,我想从bias中选取下一个N元素,并将该列表附加到结果中 这是它应该输出的内容: [[0.47, -0.45, 0.31], [-0.09, 0.21, -0.18], [0.14, -0.45], [-0.39

给出以下定义

layerData = [3, 3, 2, 1, 1]

bias = [0.47, -0.45, 0.31, -0.09, 0.21 ,-0.18, 0.14, -0.45, -0.39, -0.14]

bias
列表的开头开始,对于
layerData
中的每个元素
N
,我想从
bias
中选取下一个
N
元素,并将该列表附加到结果中

这是它应该输出的内容:

[[0.47, -0.45, 0.31], [-0.09, 0.21, -0.18], [0.14, -0.45], [-0.39], [-0.14]]

每次需要值时,都可以对其使用迭代器调用
next

>>> bias = [0.47, -0.45, 0.31, -0.09, 0.21 ,-0.18, 0.14, -0.45, -0.39, -0.14]
>>> layerData = [3, 3, 2, 1, 1]
>>> it = iter(bias)
>>> [[next(it) for _ in range(n)] for n in layerData]
[[0.47, -0.45, 0.31], [-0.09, 0.21, -0.18], [0.14, -0.45], [-0.39], [-0.14]]
用于运行总计
layerData
。这允许将子列表直接提取为切片,而不是单个项目:

来自itertools导入的
>>
>>>
>>>layerData=[3,3,2,1,1]
>>>偏差=[0.47、-0.45、0.31、-0.09、0.21、-0.18、0.14、-0.45、-0.39、-0.14]
>>>
>>>[i-n:i]对于zip中的i,n(累积(layerData),layerData)]
[[0.47, -0.45, 0.31], [-0.09, 0.21, -0.18], [0.14, -0.45], [-0.39], [-0.14]]

什么是
?为什么不使用偏见[j]?这里有一个“列表理解”;虽然它使用
for
关键字,但它有自己的语义,不同于常规for循环。j不会增加1。我没有什么要做的,所以我只是把行…对你正在写的代码来说,虽然。。。这看起来像是
枚举
,或以其他方式查找不需要您执行赋值的不同构造的用例。您的目标是增加
,还是根据
层数据
划分
偏差
?你真的需要这个列表吗?