You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现接收可变长度字典、按每4个键值对分组生成指定格式字符串的Python函数

可变长度字典分组拼接函数实现

核心逻辑是先将字典的键值对转换为可切片的列表,再按每4个元素为一组切片,逐组生成符合要求的字符串。

推荐实现(基于json模块,稳定兼容特殊字符)

import json

def split_dict_to_strings(input_dict):
    items = list(input_dict.items())
    result = []
    # 按步长4遍历,自动处理不足4个的收尾场景
    for i in range(0, len(items), 4):
        current_group = items[i:i+4]
        # 转换为要求的格式结构
        format_data = [{"name": k, "v": v} for k, v in current_group]
        # 直接序列化为符合要求的JSON字符串
        result.append(json.dumps(format_data))
    return result

兼容原有逻辑的手动拼接实现(无第三方依赖)

如果不需要处理键/值包含特殊字符的场景,也可以用和你原有代码逻辑一致的手动拼接版本:

def split_dict_to_strings(input_dict):
    items = list(input_dict.items())
    result = []
    for i in range(0, len(items), 4):
        current_group = items[i:i+4]
        part_list = []
        for k, v in current_group:
            part_list.append(f'{{"name":"{str(k)}","v":{str(v)}}}')
        group_str = "[" + ",".join(part_list) + "]"
        result.append(group_str)
    return result

使用示例

# 测试17个键值对的场景
test_dict = {f"key_{n}": n for n in range(17)}
output_list = split_dict_to_strings(test_dict)

print(len(output_list)) # 输出5,符合4*4+1的分组要求
print(output_list[0]) # 前4个键值对拼接的字符串
print(output_list[-1]) # 仅包含最后1个键值对的字符串

说明:

  • 切片逻辑range(0, len(items), 4)会自动适配任意长度的输入字典,最后一组自动取剩余的所有键值对,不需要额外判断边界
  • json实现版本会自动处理键/值包含引号、转义字符的场景,避免手动拼接出现的格式错误问题

内容的提问来源于stack exchange,提问作者Joolz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 05:45:01