在维护枚举顺序的同时使用可变的列表长度递增枚举

时间:2018-10-24 14:30:20

标签: python python-2.7 list

我有以下代码

for i, v in enumerate(total_list):
    if isinstance(v[3], unicode):
        print i, len(v[3].split(';')), v[3].split(';')

产生第N个物品

93 1 [u'Nee']
94 6 [u'Bepalen van hoeveelheden materiaal', u'Energie-analyse', u'Verifi\xebren en valideren van ontwerpbeslissingen', u'Uitvoerbaarheid', u'Beheer & Onderhoud', u'']
95 3 [u'ArchiCAD', u'Solibri Model Checker', u'']
96 6 [u'IFC2x3 Coordination View', u'IFC4 Reference View', u'IFC4 Design Transfer View', u'gbXML', u'3D DWG', u'']
97 1 [u'Ja, de BIM Basis Informatie Leverings Specficatie (ILS)']

现在,我想使用列表长度来递增i,同时枚举保持顺序,这是所需的输出:

93 1 [ u'Nee']
94 1 [ u'Bepalen van hoeveelheden materiaal']
95 1 [ u'Energie-analyse']
96 1 [ u'Verifi\xebren en valideren van ontwerpbeslissingen']
97 1 [ u'Uitvoerbaarheid']
98 1 [ u'Beheer & Onderhoud']
99 1 [u'ArchiCAD']
100 1 [u'Solibri Model Checker']
101 1 [u'IFC2x3 Coordination View']
102 1 [u'IFC4 Reference View']
103 1 [u'IFC4 Design Transfer View']
104 1 [ u'gbXML']
105 1 [u'3D DWG']
106 1 [u'Ja, de BIM Basis Informatie Leverings Specficatie (ILS)']

我尝试遍历v[3]列表,并使用列表长度增加i,但无济于事。

1 个答案:

答案 0 :(得分:0)

enumerate不会在这里为您提供帮助。您需要一个独立于循环“索引”的全局计数器,以及一个内部循环以将值平坦地打印出来(在此循环中增加计数器)

i = 0
for v in total_list:
    if isinstance(v[3], unicode):
        for tok in v[3].split(';'):
            print i, 1, tok
            i += 1