2

假设我有一本a字典

a = {'a':1,'b':2,'c':3,'d':4,'e':5}

现在如果我给出size=2的输出应该是一个列表列表,其中每个列表大小应该等于 2 ,最后一个列表大小无关紧要,就像在这种情况下它应该是这样的

[[('a', 1), ('c', 3)], [('b', 2), ('e', 5)], [('d', 4)]]

或者如果size = 3它应该是这样的[[('a', 1), ('c', 3), ('b', 2)], [('e', 5), ('d', 4)]]

4

1 回答 1

3

首先将您的字典转换为列表,您可以像这样轻松完成

In [1]: a = {'a':1,'b':2,'c':3,'d':4,'e':5}

In [2]: b = a.items()

In [3]: b
Out[3]: [('a', 1), ('c', 3), ('b', 2), ('e', 5), ('d', 4)]

而不是使用这种方法来制作给定大小的列表块

In [4]: def chunks(c, n):
   ...:     return [c[i:i+n] for i in range(0, len(c), n)]
   ...: 

In [5]: list(chunks(b,2))
Out[5]: [[('a', 1), ('c', 3)], [('b', 2), ('e', 5)], [('d', 4)]]

In [6]: list(chunks(b,3))
Out[6]: [[('a', 1), ('c', 3), ('b', 2)], [('e', 5), ('d', 4)]]
于 2012-09-12T22:39:20.657 回答