2016-08-09 203 views
0

Ich habe zwei Listen in zwei Werten gespeichert. Diejenigen wie folgt aussehen:Python 3.5 | Liste teilen und in csv konvertieren

project_titles = ['T1', 'T2', 'T3'] 
project_loc = ['L1', 'L2', 'L3'] 

Actual ich die Werte mit diesem Kodex in ein csv schreiben:

with open('data.csv', 'w') as f: 
    csv.writer(f).writerow(project_titles) 

Wenn ich die csv in eine Excel drehe ich bekommen:

  • Zelle A1 = T1
  • Zelle B1 = T2
  • Zelle C1 = T3

Das ist in Ordnung, aber ich brauche das folgende Ergebnis nach dem CSV-Export:

  • Zelle A1 = T1; Zelle B1 = L1
  • Zelle A2 = T2; Zelle B2 = L2
  • Zelle A3 = T3; Zelle B3 = L3

Haben Sie eine Idee?

+0

einen Verweis halten zu 'csv.writer (f)' und rufen 'writerow 'auf dieser Referenz, so dass Sie es mehrmals aufrufen können. Sie können etwas wie 'your_writer.writerow (project_titles)' dann 'your_writer.wrwerow (project_loc)' –

Antwort

3

Sie könnten zip() zu aggregieren Elemente aus zwei oder mehr Listen verwenden, dann schreiben die resultierenden Zeilen in die Datei mit csvwriter.writerows():

with open('data.csv', 'w') as f: 
    writer = csv.writer(f) 
    writer.writerows(zip(project_titles, project_loc)) 
+0

der Code funktioniert für zwei Variablen. Danke dafür. Aber ich habe fünf Variable und brauche den ersten Wert jeder Variablen in einer Zeile. Ich denke, das "Paar" funktioniert nicht. Hast du eine andere Idee? –

+0

@Sebastian: Sie können die gleiche Idee auf beliebig viele Listen anwenden, da 'zip()' eine beliebige Anzahl von Iterablen annehmen kann. Es kann jedoch einfacher sein, 'writerows()' anstelle von 'writerow()' zu verwenden. –