首页 > 解决方案 > 如何从 forloop 更新嵌套列表的元素 - Python

问题描述

我想从循环中的输出更新嵌套列表中的元素。但是,如果没有笨重的嵌套 for 循环,我不知道该怎么做。我怀疑使用zip将是必要的,但还没有弄清楚如何使用它。

我有一个空的嵌套列表,我想在循环进行时填充它:

empty_list = [[], [], []]

我有一个单独的嵌套列表,其元素数量与以下列表中的列表相同empty_list

lst = [[x], [y], [z]]

然后我想从循环中为每个元素生成一些输出lst。我想要的结果是:

no_longer_empty_list = [[[x], [output_x_1], [output_x_2]], 
[[y], [output_y_1], [output_y_2]], 
[[z], [output_z_1], [output_z_2]]]

whereoutput_x_1output_x_2是当在循环中解析的元素是时循环的输出(对于和x相同)yz

这是我到目前为止用伪代码构建的内容:

for elem in lst:
    if condition holds:
       generate output_1
       append output_1 to appropriate spot in empty_list  
    elif other condition holds:
       generate output_2
       append output_2 to appropriate spot in empty_list

我苦苦挣扎的地方是如何将输出附加到empty_list.

抱歉,如果语法/解释令人困惑,我已尝试将其提炼成可理解的格式,但如果仍不清楚,我会尽力解释

标签: pythonzipnested-lists

解决方案


假设您有 2 个功能;generate_out1()以及generate_out2()一个包含元素 x、y、z 的列表,其中每个元素都可以是一个列表。

result = []
lst = [x, y, z]

for elem in lst:
   temp = [elem]
   temp.append(generate_out1(elem))
   temp.append(generate_out2(elem))
   result.append(temp)

推荐阅读