如何将任意层级嵌套的list(列表)统一转换为tuple(元组)
任意嵌套层级列表转元组的实现方法
直接使用递归转换方案即可,既适配你提供的数据结构,也支持更深层级的嵌套场景:
1. 完整代码示例
# 原始输入数据 raw_data = ( ("Alfred", ["gaming", "shopping", "sport", "travel"]), ( "Carmen", [ "cooking", "pets", "photography", "shopping", "sport", ], ), ) def deep_list_to_tuple(obj): if isinstance(obj, list): # 列表直接转元组,内部元素递归处理 return tuple(deep_list_to_tuple(item) for item in obj) elif isinstance(obj, tuple): # 元组保留结构,内部元素递归处理 return tuple(deep_list_to_tuple(item) for item in obj) # 其他基础类型(字符串、数值等)直接返回,不做修改 return obj # 执行转换 converted_data = deep_list_to_tuple(raw_data) print(converted_data)
2. 输出结果
运行上述代码后得到的converted_data和你给出的预期输出完全一致:
( ("Alfred", ("gaming", "shopping", "sport", "travel")), ( "Carmen", ( "cooking", "pets", "photography", "shopping", "sport", ), ), )
3. 方案说明
- 递归逻辑会遍历所有嵌套层级的元素,无论列表嵌套多少层都能完整转换为元组
- 自动跳过字符串、数字等基础类型的处理,不会出现字符串被拆分为单个字符元组的问题
- 兼容元组、列表混合嵌套的任意结构
内容的提问来源于stack exchange,提问作者moll koll
相关产品推荐
相关产品推荐

