在Python中,可以使用以下方法将一个字典拆分为多个大小均为N的字典的列表:
def split_dict(dictionary, n):
dict_list = []
keys = list(dictionary.keys())
values = list(dictionary.values())
num_dicts = len(dictionary) // n
for i in range(num_dicts):
start = i * n
end = start + n
dict_list.append(dict(zip(keys[start:end], values[start:end])))
if len(dictionary) % n != 0:
dict_list.append(dict(zip(keys[num_dicts * n:], values[num_dicts * n:])))
return dict_list
这个函数接受两个参数:dictionary
是要拆分的字典,n
是每个拆分后的字典的大小。
函数首先将字典的键和值分别存储在列表中。然后,根据n
的大小计算出需要拆分成多少个字典。接下来,使用range
函数迭代生成每个拆分后的字典。在每次迭代中,根据索引计算出拆分的起始和结束位置,并使用zip
函数将对应的键和值重新组合成一个新的字典。最后,将拆分后的字典添加到dict_list
列表中。
如果字典的长度不能被n
整除,那么会有剩余的键值对。在这种情况下,会将剩余的键值对组合成一个新的字典,并添加到dict_list
列表的末尾。
以下是一个示例的使用方法:
dictionary = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8}
n = 2
result = split_dict(dictionary, n)
print(result)
输出结果为:
[{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}, {'g': 7, 'h': 8}]
这个例子将一个包含8个键值对的字典拆分为了4个大小均为2的字典的列表。
领取专属 10元无门槛券
手把手带您无忧上云