2013-10-22 23 views
6

supponiamo di avere una matrice NumPy con struttura come questa:Python, come scrivere un elenco annidato con lunghezze non uguali in un file csv?

[['a','b','c'],[1,2,3],['i','j','k','l'],[5,10,15,20]] 

e voglio salvarlo in un file CSV che assomiglia a questo

a, 1, i, 5 
b, 2, j, 10 
c, 3, k, 15 
, , l, 20 

le colonne con lunghezza più corta appena si riempiono di vuoto . Come lo posso fare?

+0

Qual è la forma del tuo array numpy? –

+0

Il tuo array numpy contiene 4 normali elenchi python? –

+0

sì, solo 4 normale elenco python – LWZ

risposta

13

Uso itertools.izip_longest:

>>> from itertools import izip_longest 
>>> lis = [['a','b','c'],[1,2,3],['i','j','k','l'],[5,10,15,20]] 
>>> list(izip_longest(*lis, fillvalue='')) 
[('a', 1, 'i', 5), 
('b', 2, 'j', 10), 
('c', 3, 'k', 15), 
('', '', 'l', 20)] 

Usa csv.writerows(izip_longest(*lis, fillvalue='')) a scrivere questo in un file CSV.

Problemi correlati