编写一个将整数列表拆分为子列表的函数?

时间:2017-09-26 16:59:54

标签: python algorithm

我不知道从哪里开始,我是编码的新手,所以我尽我所能,但我被卡住了。我要求从哪里开始或者一些伪代码,而不是你为我写的。

假设您有一个变量n,它是一个整数列表,您需要将其拆分为x长度的子列表。

接下来假设klen(n)/len_of_sublist

索引0, k, 2k, ...中的数字值将放在第一个子列表中。

索引1, k + 1, 2k + 1, ...中的数字值将放在第二个子列表中。

索引2, k + 2, 2k + 2, ...中的数字值将放在第三个子列表中。

2 个答案:

答案 0 :(得分:0)

从原始列表(l2)创建子列表(l1)列表,i是子列表的长度:

>>> l1 =  [1,2,3,4,5,6,7,8,9,10]
>>> i=2
>>> l2= [l1[n:n+i] for n in range(0, len(l1), i)]
>>> l2
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

使用其他c]值i

>>> i=3
>>> l2= [l1[n:n+i] for n in range(0, len(l1), i)]
>>> l2
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

答案 1 :(得分:0)

>>> n=[1,2,3,4,5,6,7,8,9,10,11,12]
>>> k=4
>>> zip(*[n[i:i+l] for i in range(0,len(n),l)])
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

这会在0,k,2k.. / 1,k+1,2k+1.. / 2,k+2,2k+2.. k=len(n)/x处为您提供元素。因此,您获得了长度为k的{​​{1}}个子列表。

注意:这只有在x完美时才有效。如果不是,结果将如下......

len(n)=k*x