假设我有一个字典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)]]
答案 0 :(得分: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)]]