Увеличьте перечисление, используя переменные длины списка, сохраняя порядок в перечислении - PullRequest
0 голосов
/ 24 октября 2018

У меня есть следующий код

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 голосов
/ 24 октября 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...