如何合并Python列表中的子列表与元素,生成层级字符串序列?
嵌套列表层级组合实现方法
给定嵌套列表:
my_list = [1, [2, 3], [4, 5]]
需要生成层级式的字符串组合列表,预期结果为:
['1', '1.2', '1.3', '1.2.4', '1.2.5', '1.3.4', '1.3.5']
实现思路
把第一个元素作为根节点,后续子列表依次作为下一级节点,从根节点开始逐层向下拼接:
- 初始结果包含根节点的字符串形式
- 依次处理每个子列表,将当前层级的所有节点与子列表中的元素拼接,生成下一级节点
- 把生成的新节点同时加入结果列表和下一轮迭代的节点集合
代码实现
my_list = [1, [2, 3], [4, 5]] # 提取根节点和后续层级的子列表 root_str = str(my_list[0]) levels = my_list[1:] result = [root_str] current_level_nodes = [root_str] for level in levels: next_level_nodes = [] for node in current_level_nodes: for num in level: combined_str = f"{node}.{num}" next_level_nodes.append(combined_str) result.append(combined_str) # 更新当前节点集合为下一层级,用于后续拼接 current_level_nodes = next_level_nodes print(result)
代码说明
root_str:将第一个元素转为字符串作为根节点,是所有组合的基础result:存储最终所有层级的组合字符串,初始仅包含根节点current_level_nodes:记录当前需要向下拼接的节点,每处理完一个层级就更新为新生成的节点- 遍历每个层级子列表时,对每个当前节点,和子列表中的每个数字拼接成新字符串,既加入结果列表,也加入下一层级的节点集合,确保后续层级能基于当前节点继续拼接
内容的提问来源于stack exchange,提问作者varun22486
相关产品推荐
相关产品推荐

