如何从字典中创建给定大小的列表列表?

时间:2012-09-12 22:38:09

标签: python list dictionary

假设我有一个字典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)]]

1 个答案:

答案 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)]]