Forum >> Principianti >> Creazione Lista unica

Pagina: 1

Buongiorno, vorrei sapere come da una serie di liste in colonna, possa crearne una unica:
Il file di testo ha questa struttura:





1 L' l' DET DET n=s|

2 humeur humeur NC NC n=s|g=f|

3 est être V V n=s|t=P|p=3|

4 à à P P _

Script:
with open("file.txt") as corpus:

for line in corpus:

uLine = unicode(line.strip(),"utf8")

splitted_line = uLine.split("\t")

if line.strip(): #se la riga non è vuota

if len(splitted_line)<6:

splitted_line.append("_")

tid,forma,lemma,pos,dpos,cpos= splitted_line

print forma

Parte dell'output:
[u'qui']
[u'vont']
[u'te']
[u'rendre']
[u'heureux']
[u'.']
[u'Et']
[u'quand']
[u'tu']
[u'es']
[u'heureux']
[u',']

Vorrei avere list = [ qui, vont, te, rendre, ecc]
Grazie mille per l'aiuto!!!






--- Ultima modifica di milkyway in data 2016-02-02 12:29:56 ---
Vorrei avere list = [ qui, vont, te, rendre, ecc]

Ciao anche a te, non ti basta fare un semplicissimo "+" sulle varie liste?

Cya
Devo però fare un ciclo for per iterare tutte le liste?
Devo però fare un ciclo for per iterare tutte le liste?
Vedi che la risposta è dentro di te?

Vai che ci sei..
Quindi tipo
for l in lista:

e dopo?

Grazie :embarrassed:
Quindi tipo
for l in lista:

e dopo?

Grazie :embarrassed:

Prova a pensare che metodi hanno gli oggetti liste??
magari lo hai già utilizzato pocanzi : splitted_line.append("_")
e magari utilizzarlo all'interno del ciclo for che hai appena menzionato.
:foot-in-mouth: :quiet:
Quindi tipo
for l in lista:

e dopo?
Hai già tutti gli elementi per effettuare il "merge".

Supponiamo che come oggetto di partenza hai una lista con altre liste al suo interno:
forma = [[u'qui'],  [u'vont'],  [u'te'],  [u'rendre'],  [u'heureux'],  [u'.'],  [u'Et'],  [u'quand'],  [u'tu'],   [u'es'], [u'heureux'],  [u',']]
Partendo da questo puoi fare in molti modi, il più semplice, come ti ho suggerito, è semplicemente sommare le liste:
>>> lista_unica = []
>>> for x in forma:
....    lista_unica += x
>>> print lista_unica
[u'qui',  u'vont',  u'te',  u'rendre',  u'heureux',  u'.',  u'Et',  u'quand',  u'tu',  u'es',  u'heureux',  u',']
Lo stesso risultato lo ottieni con chain di itertools: Return a chain object whose .next() method returns elements from the first iterable until it is exhausted, then elements from the next iterable, until all of the iterables are exhausted.
>>> from itertools import chain
>>> forma = list(chain(*forma))
>>> print forma
[u'qui',  u'vont',  u'te',  u'rendre',  u'heureux',  u'.',  u'Et',  u'quand',  u'tu',  u'es',  u'heureux',  u',']
Ma questi sono solo due esempi, lo puoi fare davvero in tanti modi diversi.

Cya

P.S. L'esempio è con Python 2.7 visto che non dai indicazioni.


Pagina: 1



Esegui il login per scrivere una risposta.