如何在python中的x列表中拆分一个列表?
两个列表中分开的列表示例:
elements = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-> ([0, 1, 2, 3, 4], [5, 6, 7, 8, 9])示例,在三个列表中拆分列表(注意第三个元组列表,包含“除息”):
elements = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-> ([0, 1, 2], [3, 4, 5], [6, 7, 8, 9])等等..。
发布于 2014-08-20 18:45:17
你可以这样做:
EDIT2 2:-
i,j,x=len(seq),0,[]
for k in range(m):
a, j = j, j + (i+k)//m
x.append(seq[a:j])
return x打电话给我
seq = range(11), m=3结果
result : [[0, 1, 2], [3, 4, 5], [6, 7, 8, 9]]def chunks(l, n):
return [l[i:i + n] for i in range(0, len(l), n)]EDIT1 1:-
>>> x = [1,2,3,4,5,6,7,8,9]
>>> zip(*[iter(x)]*3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]发布于 2014-08-20 19:00:55
def chunk(iterable ,n):
le = len(iterable)
if n > le:
return iterable
mo = le % n # get mod from length of the iterable % required len sublists
diff = le - mo # if there was any mod, i.e 10 % 3 = 1, diff will be 9
sli = le / n
res = [iterable[ind:ind + sli] for ind in range(0, diff, sli)]
res[-1] = res[-1] + iterable[diff:] # add from diff to end of the last sublist
return tuple(res) # return a tuple lists如果mo = le % n == 0 diff将等于列表的长度,那么iterable[diff:]将不会添加任何内容。
https://stackoverflow.com/questions/25412151
复制相似问题