Split-Liste in Listen, basierend auf einem Charakter auftreten innerhalb eines Elements

In einer Liste wie der folgenden:

biglist = ['X', '1498393178', '1|Y', '15496686585007',
           '-82', '-80', '-80', '3', '3', '2', '|Y', '145292534176372',
           '-87', '-85', '-85', '3', '3', '2', '|Y', '11098646289856',
           '-91', '-88', '-89', '3', '3', '2', '|Y', '35521515162112',
           '-82', '-74', '-79', '3', '3', '2', '|Z',
           '0.0', '0.0', '0', '0', '0', '0', '0', '4', '0', '154']

Könnte es einige numerische Elemente Voraus, die ein Charakter. Ich möchte zu brechen, in der sub-Listen wie unten:

smallerlist = [
 ['X', '1498393', '1'],
 ['Y', '1549668', '-82', '-80', '-80', '3', '3', '2', ''],
 ['Y', '1452925', '-87', '-85', '-85', '3', '3', '2', ''],
 ['Y', '3552151', '-82', '-74', '-79', '3', '3', '2', ''],
 ['Z', '0.0', '0.0', '0', '0', '0', '0', '0', '4', '0', '154']
]

Wie Sie sagen können, je nach Charakter, die Listen könnte ähnlich Aussehen. Andernfalls könnten Sie haben eine unterschiedliche Anzahl von Elementen oder unterschiedlichen Elementen zusammen. Der Haupt-separator ist die "|" Charakter. Ich habe versucht, führen Sie den folgenden code zum aufteilen der Liste, aber alles was ich bekomme, ist die gleiche, größere, Liste innerhalb einer Liste. I. e., Liste der len(list) == 1.

import itertools

delim = '|'
smallerlist = [list(y) for x, y in itertools.groupby(biglist, lambda z: z == delim)
                if not x]

Irgendwelche Ideen, wie man es aufteilen erfolgreich?

InformationsquelleAutor omrakhur | 2017-07-24
Schreibe einen Kommentar