2016-12-14 4 views
0

Ich habe 3 Listen, die unterschiedlichen Daten enthalten:Wie gibt man verschiedene Listen zu verschiedenen Spalten aus? Python

list_1 = [1, 2, 3, 4, 5] 
list_2 = [0.1, 0.9, 0.6, 0.8, 0.9] 
list_3 = [11, 23, 13, 14, 25] 

Wie 3 verschiedene Spalten in CSV (wie list_1 zu Spalte 1, list_2 bis Spalte 2, etc.) zur Ausgabe von?

column_1 column_2 column_3 
1   0.1  11 
2   0.9  23 
3   0.6  13 
4   0.8  14 
5   0.9  25 

Antwort

1

Auf zip() über die drei Liste zu tun, werden Sie die resultierende Liste erhalten, wie:

>>> zip(list_1, list_2, list_3) 
[(1, 0.1, 11), (2, 0.9, 23), (3, 0.6, 13), (4, 0.8, 14), (5, 0.9, 25)] 

Jetzt Sie können ganze verschachtelte Liste in die CSV-Datei schreiben mit csvwriter.writerows als:

import csv 

zipped_list = zip(list_1, list_2, list_3) 
columns = ['column_1', 'column_2', 'columns_3'] 

with open("output.csv", "wb") as f: 
    writer = csv.writer(f) 
    writer.writerow(columns) # Add column name, single line 
    writer.writerows(zipped_list) # Add nested structure, multi line 

Inhalt des output.csv:

column_1,column_2,columns_3 
1,0.1,11 
2,0.9,23 
3,0.6,13 
4,0.8,14 
5,0.9,25 
0
import csv 
list_1=[1, 2, 3, 4, 5] 
list_2=[0.1,0.9,0.6,0.8,0.9] 
list_3=[11,23,13,14,25] 
with open('you_data.csv', 'w', newline='') as f: 
    writer = csv.writer(f) 
    writer.writerow(('column_1','column_2' ,'column_3')) 
    writer.writerows(zip(list_1, list_2, list_3)) 

aus:

column_1,column_2,column_3 
1,0.1,11 
2,0.9,23 
3,0.6,13 
4,0.8,14 
5,0.9,25 

to make sure i did not copy from anyone, why should i copy such simple code???

+0

Ist nicht das Bearbeiten Sie gemacht wird von meiner Antwort kopiert? –

+0

dieser einfache Code muss kopiert werden ??? –

+0

Es nicht, aber wer weiß. Ihre ursprüngliche Antwort basierte auf der Verwendung von 'writer.row()', die Sie später in 'writer.rows()' geändert haben. –

0

Verwendung zip wie unten und csv Schriftsteller mit Begrenzer \t

with open("output.csv", "wb") as f: 
    writer = csv.writer(f, delimiter='\t') 
    writer.writerow(('column_1','column_2','column_3')) 
    for i in zip(list_1,list_2,list_3): 
     writer.writerow(i) 

# column_1 column_2 column_3 
# 1  0.1  11 
# 2  0.9  23 
# 3  0.6  13 
# 4  0.8  14 
# 5  0.9  25 
0

Sie können dies (python2) verwenden:

import csv 
import sys 

list_1 = [1, 2, 3, 4, 5] 
list_2 = [0.1,0.9,0.6,0.8,0.9] 
list_3 = [11,23,13,14,25] 

with open('output.csv', 'wb') as f: 
    w = csv.writer(f) 
    for item in zip(list_1, list_2, list_3): 
     w.writerow(item) 
0

Eine weitere einfache Möglichkeit, es zu tun (mit "zip()" integrierte Methode):

list1 = [1,2,3,4,5] 
list2 = [6,7,8,9,10] 
list3 = [11,12,13,14,15] 
zippedLists = zip(list1, list2, list3) 

print("Column_1\tColumn_2\tColumn_3") 
for x,y,z in zippedLists: 
    print(str(x) + "\t\t" + str(y) + "\t\t" + str(z)) 

Ausgang ist:

Column_1  Column_2  Column_3 
1    6    11 
2    7    12 
3    8    13 
4    9    14 
5    10    15 
Press any key to continue . . . 
Verwandte Themen