2017-01-09 2 views
0

Je travaille avec un fichier texte qui ressemble à ceci; (Les mots sont en suédois)Comment faire chaque phrase dans une liste imbriquée?

['1', 'Denna', '_', 'DET', 'DT', 'UTR|SIN|DEF', '2', 'DT', '_', '_\n'] 
['2', 'predestination', '_', 'NOUN', 'NN', 'UTR|SIN|IND|NOM', '7', 'SS', '_', '_\n'] 
['3', 'till', '_', 'ADP', 'PP', '_', '2', 'ET', '_', '_\n'] 
['4', 'en', '_', 'DET', 'DT', 'UTR|SIN|IND', '6', 'DT', '_', '_\n'] 
..... 

Il y a environ 500 phrases de différentes longueurs; chaque ligne décrit un mot. Le premier élément de liste donne la position du mot dans la phrase.

J'ai besoin de mon programme pour faire une liste imbriquée à partir des entrées pour chaque phrase (une sous-liste pour chaque phrase). Chaque nouvelle phrase commence par la position '1', et ils sont séparés par des lignes vides. Pour le moment toutes mes lignes sont dans une liste.

Je voudrais faire quelque chose comme:

l = [] 
for line in list: 
    if line[0] == '1': 
     l.append(line) 

... puis ajoutez chaque ligne qui suit jusqu'à ce qu'il atteigne à nouveau « 1 », où je commence par une nouvelle sous-liste.

Quelques idées sur la façon de le faire? Comment pourrais-je rendre cela récursif?

Répondre

0

Il ne s'agit pas d'un processus naturellement récursif; c'est itératif. Une simple boucle fera l'affaire. Puisque le déclencheur pour chaque ajout est le début de la phrase, il reste encore une phrase à ajouter. Je vais laisser cette partie pour toi. :-)