如何将嵌套字典转换为同结构的嵌套元组?
解决嵌套字典值转嵌套元组的问题
可以通过递归函数处理这种嵌套结构的转换,核心逻辑是遍历字典的每个值,遇到字典就递归处理其内部值,最终将所有结果打包为元组。
实现代码
def dict_values_to_nested_tuple(d): tuple_elements = [] for value in d.values(): # 若当前值是字典,递归处理后加入列表 if isinstance(value, dict): tuple_elements.append(dict_values_to_nested_tuple(value)) # 非字典值直接加入列表 else: tuple_elements.append(value) # 将列表转为元组返回 return tuple(tuple_elements) # 测试示例 dict1 = {'234':32,'345':7,'123':{'asd':{'pert': 600, 'sad':500}}} result_tuple = dict_values_to_nested_tuple(dict1) print(result_tuple)
输出说明
运行代码后会得到:(32, 7, ((600, 500),)),和你期望的((600, 500))本质等价——在Python中,((600, 500))只是带括号的元组表达式,实际和(600, 500)是同一个对象;而代码输出的((600, 500),)是包含元组的元组,完全对应原字典的嵌套层级(原字典中'123'对应一个字典,这个字典又对应一个字典,所以转换后是两层嵌套元组)。
适用场景
这个递归方法支持任意深度的嵌套字典,无论嵌套层级多少,都能准确匹配原结构生成对应的嵌套元组。
内容的提问来源于stack exchange,提问作者Дмитрий Кожин
相关产品推荐
相关产品推荐

