擅长:python、mysql、java
<p>基于发电机的方法:</p>
<pre><code>def chunk_dict(d, chunk_size):
r = {}
for k, v in d.items():
if len(r) == chunk_size:
yield r
r = {}
r[k] = v
if r:
yield r
d = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6}
list(chunk_dict(d, 2))
# [{1: 1, 2: 2}, {3: 3, 4: 4}, {5: 5, 6: 6}]
</code></pre>
<p>相同功能的更短、更高性能的版本(使用<code>itertools.islice</code>)
可以在<a href="https://stackoverflow.com/questions/22878743/how-to-split-dictionary-into-multiple-dictionaries-fast#answer-22878842">this answer</a>中找到。在</p>
<p>对于给定数量的尽可能均匀分布的块(例如大小为4、4、3、3而不是4、4、4、2),您可以:</p>
^{pr2}$