Python如何在for循环中更新嵌套列表元素,避免冗余嵌套循环
实现方案
方案1:用zip配对遍历(符合你预期的用法)
因为lst的元素数量和empty_list的子列表数量完全一致,直接用zip将二者按位置配对即可,无需手动维护索引,也不需要嵌套循环:
x, y, z = 1, 2, 3 empty_list = [[], [], []] lst = [[x], [y], [z]] for elem, target_sub in zip(lst, empty_list): # 先写入原元素 target_sub.append(elem) # 以下替换为你自己的业务逻辑 # 条件1生成output1 output_1 = f"output_{elem[0]}_1" target_sub.append([output_1]) # 条件2生成output2 output_2 = f"output_{elem[0]}_2" target_sub.append([output_2]) print(empty_list) # 输出结果:[[[1], ['output_1_1'], ['output_1_2']], [[2], ['output_2_1'], ['output_2_2']], [[3], ['output_3_1'], ['output_3_2']]]
方案2:直接生成新列表(无需预定义空嵌套列表)
如果你不需要保留原empty_list的引用,直接推导式生成目标列表更简洁:
def process_element(elem): result = [elem] # 写入你自己的条件判断和输出生成逻辑即可 result.append([f"output_{elem[0]}_1"]) result.append([f"output_{elem[0]}_2"]) return result no_longer_empty_list = [process_element(elem) for elem in lst]
内容的提问来源于stack exchange,提问作者Yu Na
相关产品推荐
相关产品推荐

