Skip to main content
 首页 » 编程设计

python之在 python 中给定所需的列表大小,将列表分解为子列表

2025年05月04日22freeliver54

我有一个如下所示的列表:

arr = [['3'], ['1', '0.0'], ['2', '0.05'], ['3', '0.1'], ['1', '1'], ['2', '1'], ['3', '1']] 

我想把这个列表分成更小的子列表,这些子列表的大小在原始列表的第一个元素中给出(例如这里的 3)并且只包含第二个元素。执行此操作的最 pythonic 方法是什么?

sublist1 = [0.0, 0.05, 0.1] 
sublist2 = [1, 1, 1] 

我试过使用列表理解,但我不知道如何规定 for 循环来遍历数组(即在索引 1 和 3 之间或索引 4 和 6 之间)上面的示例 arr)。

n_nodes = arr[0][0] # gets number of nodes, 3 
first_section = [element[1] for element in arr] 

请您参考如下方法:

让我们将其分解为简单的步骤。首先,获取整数形式的 block 大小:

>>> [n] = arr[0] 
>>> n = int(n) 
>>> n 
3 

然后,获取第二个元素的列表。有几种方法可以做到这一点,但最可读的是使用列表理解:

>>> bs = [b for [a,b] in arr[1:]] 
>>> bs 
['0.0', '0.05', '0.1', '1', '1', '1'] 

现在,将这个列表切成 block 。这是一个已经解决的问题,在这里无限讨论:

How do you split a list into evenly sized chunks?