如何创建每个索引包含一个项目的列表,每个索引包含多个项目

时间:2020-06-05 12:56:18

标签: python-3.x list loops indexing iteration

我正在尝试使用XlsxWriter生成电子表格。我能够创建要遍历电子表格的列表列表,但当前一些索引位置也为列表。

这是我的列表列表:

listOfLists = [
    ['sg-1111111111111111', 'launch-wizard-1', [80, 22], ['0.0.0.0/0', '0.0.0.0/0'], ['All'], ['0.0.0.0/0'], 'vpc-11346c6b'],
    ['sg-2222222222222222', 'ASG-SG', [22], ['0.0.0.0/0'], ['All'], ['0.0.0.0/0'], 'vpc-11346c6b'],
    ['sg-3333333333333333', 'WebSecGrp', [80], ['0.0.0.0/0'], ['All'], ['0.0.0.0/0'], 'vpc-11346c6b'],
    ['sg-4444444444444444', 'WebDMZSG', [80, 22, 443], ['0.0.0.0/0', '0.0.0.0/0', '0.0.0.0/0'], ['All'], ['0.0.0.0/0'], 'vpc-11346c6b'],
    ['sg-5555555555555555', 'default', ['All'], ['All'], ['All'], ['0.0.0.0/0'], 'vpc-033da694c7bd5e1b9'],
    ['sg-6666666666666666', 'launch-wizard-2', [22], ['0.0.0.0/0'], ['All'], ['0.0.0.0/0'], 'vpc-11346c6b']
]

我想遍历每个列表并创建一个新列表,每个索引位置包含一个项目。解决方案应遍历每个列表,直到列表中没有更多项目为止。在次要遍历列表时,如果索引位置为空,则新列表中的对应位置也应为空。应该继续遍历每个列表,直到该特定列表的任何索引位置中没有更多项目为止。最终结果应该是:

newListofLists = [
    ['sg-1111111111111111', 'launch-wizard-1', '80', '0.0.0.0/0', 'All', '0.0.0.0/0', 'vpc-11346c6b'],
    ['', '', '22', '0.0.0.0/0', '', '', ''],
    ['sg-2222222222222222', 'ASG-SG', '22', '0.0.0.0/0', 'All', '0.0.0.0/0', 'vpc-11346c6b'],
    ['sg-3333333333333333', 'WebSecGrp', '80', '0.0.0.0/0', 'All', '0.0.0.0/0', 'vpc-11346c6b'],
    ['sg-4444444444444444', 'WebDMZSG', '80', '0.0.0.0/0', 'All', '0.0.0.0/0', 'vpc-11346c6b'],
    ['', '', '22', '0.0.0.0/0', '', '', ''],
    ['', '', '443', '0.0.0.0/0', '', '', ''],
    ['sg-5555555555555555', 'default', 'All', 'All', 'All', '0.0.0.0/0', 'vpc-033da694c7bd5e1b9'],
    ['sg-6666666666666666', 'launch-wizard-2', '22', '0.0.0.0/0', 'All', '0.0.0.0/0', 'vpc-11346c6b']
]

预先感谢您,Hive的想法! :)

1 个答案:

答案 0 :(得分:0)

这样想:在您浏览该行时,请先从一个空列表列表和两个计数器整数开始:正在使用多少个辅助列表,我到底在多大范围内?将主要项目移动到第一个列表。如果我发现有必要将项目移至辅助列表,并且没有这样的列表(变量1太低),请制作一个空白列表,直到此时为止(变量2-1)并将该项目移至新列表,将其放在列表列表中。现在,您经历的每个项目都需要将值或空格移动到每个活动的辅助列表中。在此行的末尾,将您的列表放入newListofLists中。

澄清这个想法,列表的空列表可能在newListofLists的末尾,在那里您保留了基本(主)列表位置的变量。复杂度指标可能不喜欢它!回去玩赶上游戏非常复杂,所以:

为简化起见,进行了进一步修订:对于每一行,请进行预扫描以查找它将生成多少个列表,然后在第二遍中用值或空格填充该多个列表。现在,您只需要一个输出基本位置变量,一个列表计数变量和一个列表迭代器变量。

当然,我的python很弱,我不知道如何判断列表项是否为列表!但是Google和Stack Overflow是我的朋友:How to check if an element of a list is a list (in Python)?这只是高级输入输出分析!还有很多东西给你!

相关问题