如何在不使用外部模块的情况下将字典分割为均等块
不依赖外部模块实现字典均等分割
当然可以,只用Python标准库就能完成需求。核心步骤:
- 提取原字典的有序值列表(Python 3.7+ 版本的字典默认保留键的插入顺序,刚好匹配你的原字典结构)
- 按照指定的块大小(这里是3)对值列表进行切片拆分
- 为每个拆分后的子列表生成新字典,键从0开始重新连续编号
实现代码
original_dict = {0: 'media', 1: 'alta', 2: 'media', 3: 'media', 4: 'alta', 5: 'alta', 6: 'baja', 7: 'media', 8: 'media', 9: 'media', 10: 'media', 11: 'media'} chunk_size = 3 # 提取原字典的有序值 values = list(original_dict.values()) # 拆分并生成目标字典列表 chunked_dicts = [dict(enumerate(values[i:i+chunk_size])) for i in range(0, len(values), chunk_size)] # 打印输出结果 for d in chunked_dicts: print(d)
输出结果
{0: 'media', 1: 'alta', 2: 'media'} {0: 'media', 1: 'alta', 2: 'alta'} {0: 'baja', 1: 'media', 2: 'media'} {0: 'media', 1: 'media', 2: 'media'}
这段代码用列表推导式简化了循环逻辑,enumerate会自动为子列表的每个元素分配从0开始的键,完全符合你的期望输出。
内容的提问来源于stack exchange,提问作者Fabrizzio Yepez
相关产品推荐
相关产品推荐

