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 に答える