我想把一个简单的dict转换成一个dict列表,其中每个dict中的元素数量与这个相同:[{0:0, 2:2}, {1:1, 3:3}]
。我尝试过像列表那样使用简单的索引,但是它给我带来了一个TypeError: unhashable type: 'slice'
。我现在的情况是:
def dico_chunks(dico, n):
if len(dico) < n:
n = len(dico)
return [dico[i::n] for i in range(n)]
请记住,无论如何,我不需要把清单整理好。我只需要把我的主字典分成n
个子字典的列表。在
您可以使用在Iterate through pairs of items in a Python list中定义的
pairwise
函数,并将dict的items()
传递给它:如果需要非重复对,则可以使用
^{pr2}$zip
:字典基本上是无序的,所以如果您想要一个特定的顺序,您需要使用其他一些逻辑来指定它。在
基于发电机的方法:
相同功能的更短、更高性能的版本(使用
itertools.islice
) 可以在this answer中找到。在对于给定数量的尽可能均匀分布的块(例如大小为4、4、3、3而不是4、4、4、2),您可以:
^{pr2}$相关问题 更多 >
编程相关推荐