Python:重复嵌套循环如何正确堆叠它们

2024-09-30 06:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉,如果这是一个微不足道的问题,我对Python还是相当陌生的。 我有以下列表的示意图列表,需要部分展平(以便保存在csv中):

[[Header1, Header2,....,Header9,  Header10(a),  Header10(b), ...., Header20],
 [item1,   item2,...,    item9,   item 10a,     item10b ,...,      item 20],
 [......],
 [item1,   item2,...,   item9, [i10a, i10a, i10a], [i10b,i10b, i10b], item20],
 [item1,   item2,...,   item9, [i10a, i10a],       [i10b,i10b],       item20],
 [......]]

也就是说,我有一些列表,其中项目10a和10b本身就是列表(因为它们(任意)是项目10本身中的重复元素)

外部/完整列表应以csv文件结尾。 我希望输出看起来像是列表本身是规则行。嵌套的列表元素也会变成自己的行:

 Header1   Header2    ....   Header10a  Header10b  .... Header20
  Item1     Item2     ....     Item10a   Item10b   .... Item20
   ...       ...      ....       ...       ...     ....  ...
  Item1     Item2     ....     Item10a   Item10b   .... Item20
                               Item10a   Item10b
                               Item10a   Item10b   
  Item1     Item2     ....     Item10a   Item10b   .... Item20
                               Item10a   Item10b 
   ...       ...      ....       ...       ...     ....   ...

我一直在试验while循环(使用另一个变量计算这些间隙)来获得这种不规则结构,但我似乎缺乏一些额外的知识/经验来实际获得所需的结果

因此,我请求帮助

编辑(更新): 答案/最简单的解决方案是最终使用上面的完整列表,并将其转换为新的列表。通过告诉每个元素它在新列表中的新位置,可以实现与上面所示的示意图表格中所示的相同意义上的所需展平。(迭代最深嵌套列表的内部,并让迭代器更改新列表中的位置,例如NewList[i-j]。附加(..),其中j表示迭代器。)


Tags: csv元素列表item1示意图item2header1item20

热门问题