如何用3层for循环提取嵌套列表中元组对应元素生成新列表
使用三层for循环处理嵌套列表的需求
需求说明
给定嵌套列表:
[[(1,2),(1,4)],[(7,5),(5,4)]]
需要生成两个新列表:
- 第一个列表:每个子列表中所有元组的第一个元素组成的元组集合,即
[(1,1),(7,5)] - 第二个列表:每个子列表中所有元组的第二个元素组成的元组集合,即
[(2,4),(5,4)]
要求用三层for循环实现该需求。
实现代码
# 原始嵌套列表 original_list = [[(1,2),(1,4)],[(7,5),(5,4)]] # 初始化两个结果列表 first_elements = [] second_elements = [] # 第一层循环:遍历原始列表中的每个子列表 for sublist in original_list: temp_first = [] temp_second = [] # 第二层循环:遍历子列表中的每个元组 for tpl in sublist: # 第三层循环:遍历元组的元素并区分索引 for idx, elem in enumerate(tpl): if idx == 0: temp_first.append(elem) else: temp_second.append(elem) # 将临时列表转为元组后加入结果列表 first_elements.append(tuple(temp_first)) second_elements.append(tuple(temp_second)) # 输出预期格式的结果 print(first_elements, second_elements, sep=',')
代码逻辑说明
- 第一层循环:逐个取出原始列表中的子列表,依次处理每个子列表的元素提取工作。
- 第二层循环:遍历当前子列表里的每一个元组,为后续提取元素做准备。
- 第三层循环:通过
enumerate获取元组元素的索引,根据索引判断是元组的第一个还是第二个元素,分别存入对应的临时列表。 - 每个子列表处理完成后,将临时列表转为元组,添加到最终的结果列表中,保证输出格式符合要求。
内容的提问来源于stack exchange,提问作者Miaa Miaa
相关产品推荐
相关产品推荐

